正则表达式 – Grep模糊嵌套方括号
sample.txt包含
abcde abde 任何人都可以解释以下命令的输出 – > grep'[[ab]]’sample.txt – 没有输出 [(ab)]和[^(ab)]是什么意思?它与[ab]和[^ ab]相同吗? 解决方法
首先要理解的是,在字符类中,正则表达式的元字符都没有任何特殊含义.它们字面上匹配.例如,*将匹配*并且不代表0或1重复.同样,()将匹配(和),并且不会创建捕获组.
现在,如果在字符类中找到了],则会自动关闭字符类,而另一个字符将不是该字符类的一部分.现在,让我们了解上面发生的事情: 在1,2和4中,您的角色类在第一次结束时结束.所以,最后一个结束括号 – ]不是字符类的一部分.它必须单独匹配.所以,你的模式将匹配如下: '[[ab]]' is same as '([|a|b)(])' // The last `]` has to match. '[ab[]]' is same as '(a|b|[)(])' // Again,the last `]` has to match. '[ab]]' is same as '(a|b|])(])' // Same,the last `]` has to match. ^ ^---- Character class closes here. 现在,因为在两个字符串中,最后都没有,因此找不到匹配. 然而,在第3种模式中,您的角色类仅由最后一个关闭].因此,一切都在角色类中. '[ab[]' means match string that contains 'a',or 'b',or '[' 这是完全有效的,并匹配字符串.
[(ab)]表示匹配(,a,b,)中的任何一个.请记住,在角色类中,正则表达式的元字符没有任何特殊含义.因此,您无法在字符类中创建组. [^(ab)]表示与[(ab)]完全相反.它匹配任何不包含任何指定字符的字符串.
不.这两个不包括(和).因此他们没什么不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – rspec控制器中的Rails’post’
- c# – 何时评估闭包中的属性?
- reactjs – React – 如何获取输入字段的值?
- 掌握 Dojo 工具包,第 2 部分: XHR 框架与 Dojo
- ruby-on-rails – 将局部变量传递给在视图加载后
- ruby-on-rails – I18n :: InvalidPluralization
- ruby-on-rails-3 – PDFKit(wkhtmltopdf)破碎的管
- 深度理解依赖注入(Dependence Injection)
- 表格编辑并实现ajax回写
- Swift 范的 CGRect、CGSize 和 CGPoint(转)