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简要介绍该主题.

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...