由于某种原因,我无法使用延迟匹配。
这是文字 -
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)?
但它似乎没有工作 - 它匹配所有实例。怎么了?
答案 0 :(得分:1)
您的正则表达式(apache)?
表示大约“匹配 apache 或不是apache ”,因此它显然会匹配所有内容。
您没有指定使用哪种编程语言或正则表达式,但此正则表达式将匹配包含 apache 一词的整行:
.*apache.*
这当然会匹配所有包含单词 apache 的行,因此您可以使用您正在使用的编程语言来获取第一个匹配项
注意:如果您选择的正则表达式与带有点的换行符相匹配,那么您可能需要进入多行模式并添加行开头和行结束锚点,如下所示:
^.*apache.*$
(然后记得打开多线模式!)