我想在文件中找到包含两个单词的行,word_1并按word_2顺序排列,例如在Line A下面,但不是在Line B或Line C:
Line A: ... word_1 .... word_2 ....
Line B: ... word_1 ....
Line C: ... word_2 ....
Run Code Online (Sandbox Code Playgroud)
我试过了
$ack '*word_1*word_2'
$ack '(word_1)+*(word_2)+'
Run Code Online (Sandbox Code Playgroud)
以及在^正则表达式开头附加的相同命令(试图遵循Perl正则表达式语法).
这些命令都不会返回我感兴趣的文件或行.
我究竟做错了什么?
谢谢!
dso*_*ano 43
你想要找到word_1,随后是任何东西,然后是word_2.那应该是
word_1.*word_2
Run Code Online (Sandbox Code Playgroud)
您似乎正在使用*它,因为它经常用于命令行搜索,但在正则表达式中它是前一个字符的量词,意味着匹配它至少0次.例如,正则表达式a*将匹配0或更多as,而正则表达式a+将匹配至少一个a.
正则表达式字符意思是"匹配任何东西" .,所以.*意味着"匹配任何东西,无论多少次.请参阅perlrequick以简要介绍该主题.
| 归档时间: |
|
| 查看次数: |
31211 次 |
| 最近记录: |