0

出于某种原因,我无法使用惰性匹配。

以下是正文——

 806 ?        Ss     0:00 /usr/sbin/apache2 -k start
  823 ?        S      0:00  \_ /usr/sbin/apache2 -k start
  824 ?        S      0:00  \_ /usr/sbin/apache2 -k start
  825 ?        S      0:00  \_ /usr/sbin/apache2 -k start
  826 ?        S      0:00  \_ /usr/sbin/apache2 -k start
  827 ?        S      0:00  \_ /usr/sbin/apache2 -k start

我只想匹配具有“apache2”的第一行,即

806 ?        Ss     0:00 /usr/sbin/apache2 -k start

我的正则表达式看起来像这样 -

(apache)?

但它似乎没有工作 - 它匹配所有实例。怎么了?

4

1 回答 1

1

您的正则表达式(apache)?大约意味着“匹配apache不匹配 apache ”,因此它显然会匹配所有内容。

您没有指定您正在使用哪种编程语言或正则表达式风格,但此正则表达式将匹配包含单词apache的整行:

.*apache.*

这当然会匹配包含单词apache的所有行,因此您可以使用您正在使用的编程语言来获取第一个匹配项。

注意:如果您选择的正则表达式风格将换行符与点匹配,那么您可能需要进入多行模式并添加行首和行尾锚点,如下所示:

^.*apache.*$

(然后记得打开多行模式!)

于 2012-08-10T10:31:03.817 回答