use*_*805 21 unix perl grep ack
我的目标是<?=用ack 找到所有" "事件.我怎样才能做到这一点?
ack "<?="
Run Code Online (Sandbox Code Playgroud)
不行.请告诉我如何解决逃避问题?
DVK*_*DVK 28
由于ack使用Perl正则表达式,您的问题源于在Perl RegEx语言中,这?是一个特殊字符,意思是"最后匹配是可选的".所以你要点击的是=一个可选的<
所以你需要逃避,?如果这只是一个普通的角色.
逃避,有两种方法 - <\?=或者<[?]=; 有些人发现第二种形式的转义(将特殊字符放入字符类)比反斜杠转义更具可读性.
更新正如Josh Kelley在评论中慷慨地添加的那样,第三种形式的转义是使用\Q运算符,它会逃脱所有以下特殊字符,直到\E遇到,如下所示:\Q<?=\E
小智 14
ack -Q "<?="
Run Code Online (Sandbox Code Playgroud)
如果您想通过简单的文本查找,这是最佳解决方案.
(如果你不需要通过正则表达式找到.)
| 归档时间: |
|
| 查看次数: |
6275 次 |
| 最近记录: |