Articles of 正则expression式

确定电子邮件是否包含特定数量的特定字符

我希望编写一个SpamAssassin规则,如果电子邮件包含消息正文中特定字符的n以上,就会匹配该规则。 不一定连续。 例如,如果消息中总共有十个星号,则匹配该规则。 如果有十个连续的星号,我知道如何写规则,如下所示: body TEN_ASTERISKS /(**********)/ score TEN_ASTERISKS 0.5 describe TEN_ASTERISKS Message body contains ten asterisks. 我将如何重新编写匹配十个星号的规则,而不一定是连续的?

正则expression式在GREP中

我有一个.xml文件。 里面的标签是: <Info>Product</Info> 现在,我在这个文件中有20 000个这样的标签。 然而,一个标签正常启动,但是缺less一个合适的结束标签。 我怎样才能find哪一行正确启动,但不以适当的标签结束? 谢谢。

怪异的Apache重写正则expression式

我正在将一个设置从apache迁移到nginx。 在这个过程中,我在.htaccess文件中遇到了这个重写规则: RewriteRule ^/?(?:(?!one|two|three|four).?)+/?$ http://somewhere.else.com [R=301,L] 我通常在正则expression式方面很不错,但是这远远超过了我。 对于初学者,我不知道embedded括号甚至被允许。 有人可以向我解释这个正则expression式吗? 如果这只是一个Apache的东西,我怎么可以复制它在Nginx?

ls | grep正则expression式,忽略.tab文件,

我知道一些正则expression式,但我不知道如何得到这个工作。 我想列出所有没有.tab的文件。 并没有〜在文件名的末尾,不是.o(或.bin) 我可以列出所有.tab文件。 通过写作 ls | grep .tab. 但是我不知道如何让它忽略这些文件并列出其他所有内容。 我试过了 ls | grep [^(.tab.)] 但有一个错误,并认为我最后的正则expression式会是 ls | grep ([^(.tab.)]|.o$|.bin$) 但是我从来没有做过太多的正则expression式,所以我相信即使语法正确,最终的结果也是错误的。

正则expression式负面匹配的麻烦

我一直在试图想出一个正则expression式匹配string基于特定的文件名,我希望有一个正则expression式忍者(我会省略xkcd链接的时间)在那里谁可以帮助。 我需要匹配以“.htm”或“.html”结尾的任何string,不是(负面匹配),紧接着是“msg-”,后跟4-16位数字或连字符。 string的开始可以是任何长度或内容。 这是我迄今为止的尝试: (?!msg-[0-9-]{4,16})\.html?$ 但是,这似乎并不奏效。 部分问题是先行匹配 – 我想匹配整个string,如果它符合这些标准,而不是不匹配的string的第一部分。 任何build议,将不胜感激。 万一它的味道很重要,这是Debian上的一个bash脚本。 编辑: 这里有一些string应该匹配正则expression式 the-quick-brown-fox-jumped-over-the-lazy-dog.html # ends with .html but no digits/hyphens just prior wdihwi94uq239ujdf23yefh02msg-2-8.htm # digit/hyphen count between 'msg-' and '.html' is below 4 ohdf23890yo4c89uwmsg-999-24j345.html # non-number/hyphen in chars between 'msg-' and '.html' 这里有一些不应该匹配正则expression式的string: kh3j42he2-dwfascn233=feufefask0msg-34535-355 # does not end with '.htm'/'.html' 395-u78{efihighqwioh9msg-8455-212.html # ends with […]

抓取邮件中的目录path,例如“您在/ var / spool / mail / root中有新邮件”

所以我经常会收到邮件,例如You have new mail in /var/spool/mail/root ,最后input/复制粘贴: tail /var/spool/mail/root ,这有点麻烦。 有没有一个简单的命令可以做到这一点(即从bash中的前面输出的行中抓取类似目录的东西)呢?

nginx httpMapModule正则expression式variables

HttpMapModule文档指出: 从1.0.4开始,不区分大小写的正则expression式可以通过在模式前添加〜*来使用。 举个例子: map $uri $myvalue { /aa /mapped_aa; ~^/aa/(?<suffix>.*)$ $suffix; } 我更新到nginx/1.2.7使用这个,天真的正则expression式工作好,但variables不。 当我尝试上面的语法,我得到的错误: nginx: [emerg] pcre_compile() failed: unrecognized character after (?< in "^/aa/(?<suffix>.*)$" at "suffix>.*)$" 我也尝试了下面的语法,但是没有一个工作: ~^(.*)$ $1; ~^(.*)$ \1; 但他们都没有工作。 有谁知道如何让variables在HttpMapModule正则expression式中工作?

忽略行grep

我正在运行一个进程输出非常恼人的消息。 我宁愿不删除该行,但只是用grep删除它 要忽略的消息都包含“请求”一词。 我可以很容易地只用这些线 $> myproc | grep requests 我怎么会grep IGNORE行与请求的单词?

Bash正则expression式的问题

我在用 ps -ef | grep java | wc -l 找出在任何给定时间运行的java进程的数量。 上面的命令显然也会在结果中统计“ps -ef | grep java”命令。 为了避免这个,我发现我可以使用 ps -ef | grep [j]ava | wc -l 它工作正常。 不过,我想弄清楚为什么能从结果中跳过原来的命令。

是否有可能在DNS中有正则expression式的CNAMElogging?

有没有可能做这样的事情? 还是等价的? 在DNS服务器中。 ([0-9]{2})\.example\.com\. IN CNAME www$1.example.net.