正则表达式排除括号

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])

基本上匹配某些东西,但不将其包含在结果匹配中。

【讨论】:

谢谢 我也不知道

以上是关于正则表达式排除括号的主要内容,如果未能解决你的问题,请参考以下文章

Linux正则表达式

Linux正则表达式

正则表达式去除中文sql

怎么用正则表达式匹配小括号里内容(含括号)?

如何用正则表达式匹配括号中的内容,不包含括号

正则表达式的用法和常用实例