Regex仅匹配第一个实例
由于某些原因,我无法使用惰性匹配 以下是文本-Regex仅匹配第一个实例,regex,regex-greedy,Regex,Regex Greedy,由于某些原因,我无法使用惰性匹配 以下是文本- 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
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”,即
我的正则表达式看起来像这样-
(apache)?
但它似乎不起作用——它匹配所有实例。怎么了 您的regex(apache)
的意思大致是“匹配apache或不匹配apache”,因此它显然会匹配所有内容
您没有指定使用哪种编程语言或regex风格,但此regex将匹配包含单词apache:
当然,这将匹配所有包含apache一词的行,因此您可以使用您正在使用的编程语言仅获得第一个匹配
注意:如果您选择的正则表达式风格将换行符与点匹配,那么您可能需要进入多行模式并添加行首和行尾锚定,如下所示:
^.*apache.*$
(然后记得打开多行模式!)因为“?”的意思是“找到这个问号前面的零或一个东西”。你不需要为此解析
ps
。查看系统上的/var/run/apache2.pid
或类似内容。
.*apache.*
^.*apache.*$