ack正则表达式:在同一行中按顺序匹配两个单词

前端之家收集整理的这篇文章主要介绍了ack正则表达式:在同一行中按顺序匹配两个单词前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在文件中找到包含word_1和word_2两个单词的行,如下面的A行,但不是在B行或C行:
Line A: ... word_1 .... word_2 .... 
Line B: ... word_1 ....
Line C: ... word_2 ....

我努力了

$ack '*word_1*word_2'
$ack '(word_1)+*(word_2)+'

并且在正则表达式的开头附带了^附加的相同命令(试图遵循Perl正则表达式语法).

这些命令都不返回我感兴趣的文件或行.

我究竟做错了什么?

谢谢!

你想找到word_1,其次是任何次数,后跟word_2.应该是
word_1.*word_2

你似乎正在使用*,因为它通常用于命令行搜索,但在正则表达式中它是前一个字符的量词,意思是匹配至少0次.例如,正则表达式a *将匹配0或更多,而正则表达式a将匹配至少一个a.

正则表达式意思是“匹配任何东西”,所以*表示“匹配任何东西,任何次数”,请参见perlrequick简要介绍该主题.

原文链接:https://www.f2er.com/regex/357204.html

猜你在找的正则表达式相关文章