正则表达式排除括号
Posted
技术标签:
【中文标题】正则表达式排除括号【英文标题】:Regex exclude brackets 【发布时间】:2016-11-27 11:49:51 【问题描述】:我有以下正则表达式:
[^a-zA-Z0-9](est)[^a-zA-Z0-9]
测试字符串:
this is a test [est+where] esterius
它应该只突出显示第一个“est”。遗憾的是括号 [ 和 + 符号也匹配。但是如果之前和之后的字符不是字母而不是数字,我只想匹配我的单词“est”
【问题讨论】:
您不需要环顾四周,只需访问捕获组 (match.Groups[1].Value
)
我同意@WiktorStribiżew 你根本不需要环顾四周。您的捕获组已经包含您需要的内容。老实说,我认为下面接受的答案是矫枉过正。更不用说并非所有的正则表达式都支持向后看,所以如果你必须移植到 javascript,下面的方法就行不通了。
【参考方案1】:
您应该使用前瞻和后瞻:
(?<=[^a-zA-Z0-9])est(?=[^a-zA-Z0-9])
基本上匹配某些东西,但不将其包含在结果匹配中。
【讨论】:
谢谢 我也不知道以上是关于正则表达式排除括号的主要内容,如果未能解决你的问题,请参考以下文章