Questions tagged «regex»

在询问正则表达式问题时,请始终为您使用的特定编程语言或工具(例如Perl,Python或Java; vi,emacs或grep等)添加标签。

2
Nginx位置正则表达式不适用于代理通行证
我正在尝试使这2个位置指令在Nginx中起作用,但是在引导Nginx时却出现了一些错误。 location ~ ^/smx/(test|production) { proxy_pass http://localhost:8181/cxf; } location ~ ^/es/(test|production) { proxy_pass http://localhost:9200/; } 这是我收到的错误: nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block 听起来有人熟悉吗?我在这里想念什么?
43 nginx  proxy  regex  proxypass 

2
Nginx:多个路径的位置正则表达式
我在nginx config中有两个可以工作的位置: location ^~ /media/ { proxy_pass http://backend.example.com; } location ^~ /static/ { proxy_pass http://backend.example.com; } 如何将这两部分合并到一个位置? 我已经做了什么: 我尝试了这个建议 location ~ ^/(static|media)/ { proxy_pass http://backend.example.com; } 但这对我不起作用。 另外,当我不使用后端时,以下配置可以正常运行: location ~ ^/(static|media)/ { root /home/project_root; } 更新(日志中的一些字符串) xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /content/11160/ HTTP/1.1" 200 5310 "-" "Mozilla/5.0 (Windows NT …
30 nginx  regex 

2
Nginx通配符/正则表达式在位置路径中
我的Nginx配置抛出404,.php例如: ## Any other attempt to access PHP files returns a 404. location ~* ^.+\.php$ { return 404; } 但是我在子文件夹中有一些index.php文件要运行。当前配置如下: location = /sitename/subpage/index.php { fastcgi_pass phpcgi; #where phpcgi is defined to serve the php files } location = /sitename/subpage2/index.php { fastcgi_pass phpcgi; } location = /sitename/subpage3/index.php { fastcgi_pass phpcgi; } …
22 nginx  regex  wildcard 


5
使用sed删除字符串周围的左方括号和右方括号
我在Ubuntu 12.04.1 LTS的bash shell中运行此命令。我正在尝试一次删除掉[和]字符,即不必通过管道再次进行sed。 我知道方括号在正则表达式中有特殊含义,因此我在前面加上反斜杠来对其进行转义。我期望的结果只是字符串,123但仍然保留了方括号,我很想知道为什么! ~$ echo '[123]' | sed 's/[\[\]]//' [123]
19 bash  regex  sed 

1
Ack搜索文字字符串[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 7年前关闭。 当我要搜索html标签的一部分时,我厌倦了不得不转义的事情。 如何在不转义的情况下确认输入的内容准确? 例如 ack-grep 'console.log(foo' 我得到: Unmatched ( in regex; marked by <-- HERE in m/console.log( <-- HERE par/
15 grep  regex 


1
使用量词时,nginx pcre_compile错误
我在使用别名时遇到问题。我想将文件的前4位附加为目录的一部分。(例如'../123456.jpg'=>'../123/123456.jpg'和'../12.png'=>'../12/12.png') 这是我所拥有的: location ~ ^/i/gallery2/(\d{1,4})(.*)$ { alias /home/web/images/gallery/$1/$1$2; } 这是我得到的错误: nginx: [emerg] pcre_compile() failed: missing ) in "^/i/gallery2/(\d" 任何人都有任何想法如何使它工作?看来“ {1,4}”有问题,还有我想要的另一种方式吗?
14 nginx  regex 

1
如何使秒正确忽略时间戳
我有一个这样设置的规则; 在/etc/sec/rules.d中,我有; type=SingleWithSuppress ptype=regexp pattern=(\S+) sshd\[\d+\]: PAM \d+ more authentication failures\; logname=.* uid=.* euid=.* tty=ssh ruser=.* rhost=(.*) user=(.*) desc=Login Failure: $0 action=pipe '%s ' /bin/mail -s "login failure $2 to $3@$1" team@team.com window=300 因此,如果这是通过syslog来的; Nov 21 11:24:10 servername.server.com sshd[26846]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost= …
13 linux  logging  syslog  regex 

3
nginx重写在网址末尾附加参数
我需要配置反向代理,以便在URL的末尾添加以下参数: &locale=de-de 这几乎可以工作: rewrite ^(.*)$ $1&locale=de-de break; 但是,问题是,仅当 '&locale = de-de' 还不存在并且存在'?'时,才需要附加它 在网址中... 我可以在制定正确的正则表达式方面获得一些帮助吗? 另一个问题:如果使用以下命令,为什么我的URL中的问号没有显示: $ uri?$ args 或者$ uri $ is_args $ args转换未编码的url,问号显示为%3f。 有想法吗? 编辑:与proxy_pass结合使用时,似乎存在此行为。通过简单的重写,它确实可以很好地工作。
13 nginx  regex 

1
什么是PCRE限制?
在ModSecurity中存在PCRE limits exceeded错误。 我知道我可以通过设置以下规则来解决此问题: SecPcreMatchLimit 150000 SecPcreMatchLimitRecursion 150000 但是,这些规则实际上在做什么?将PCRE限制递归设置为150,000是什么意思?通过将其设置得如此高,我可以允许哪些安全漏洞?什么是recursion和limit是什么意思? 我知道有文档,但是文档实际上并没有告诉我发生了什么,只是告诉我如何使用指令。


1
Nginx将所有旧域子域重定向到新域
我的域名很长,因此我决定将其更改为更短,更友好的域名。但是由于我有很多子域(实际上,我有一个子域通配符),所以我想保留子域,而只更改域部分。因此,我制定了以下规则: server { listen 80; server_name ~^(\w+)\.olddomain\.com$; rewrite ^ $scheme://$1.doma.in$request_uri? permanent; } 我还阅读了许多其他问题,以解决此问题。但是与我一起,Nginx总是重定向到.domain.in,没有任何子域。我想念什么?我已经针对regex101测试了正则表达式,并且示例运行正常,Nginx似乎无法重定向它。

2
掌握CIDR范围
我不时地要在我的Apache日志文件之外grep CIDR范围。对于落在自然边界(/ 8,/ 16和/ 24)上的范围,这很容易,但是对于其他范围(例如,/ 17和/ 25)则不那么容易。 例子: # 192.168.0.0/16: (easy) grep " 192\.168\." access_log # 192.168.128.0/17: (more thought required) grep -E " 192\.168\.(12[89]|1[3-9][0-9]|2[0-5][0-9])\." access_log # 192.168.0.0/17: (more thought required) grep -E " 192\.168\.([0-9]|[0-9][0-9]|1[01][0-9]|12[0-7])\." access_log # 192.168.128.0/18: (straining my brain) grep -E " 192\.168\.(1[2-8][0-9]|19[01])\." access_log 这些正则表达式会忽略包含前导零的IP地址,例如192.168.001.001,这在Apache日志文件中不是问题,但可能在其他日志文件中。打印机似乎特别喜欢前导零。将可选的零添加到正则表达式很容易,但这只会使整个过程变得更加困难。必须有一种更简单的方法。 有没有一种简单的方法可以从文件中选择匹配任何CIDR范围的行? 花哨的正则表达式扩展将被认为是不同的工具(例如,awk或perl如果需要,但我希望它是一种工具),只要它们使工作变得容易。理想情况下,我想要的是 grep "[:CIDR …
10 ip  regex  grep  cidr 

2
如何使用正则表达式从TAR存档中排除文件?
我有一个简单的问题,但找不到或解决答案。我想创建一个tar存档,但是我想使用正则表达式从中排除一些文件。 要排除的文件示例如下: 68x640X480.jpg 我没有运气尝试过这个: tar cvf test.tar --exclude=[0-9]+x[0-9X]+\.jpg /data/foto 有人可以帮忙吗?
10 linux  tar  regex  archive 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.