【问题标题】: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,下面的方法就行不通了。

标签: c# regex vb.net


【解决方案1】:

您应该使用前瞻和后瞻:

(?<=[^a-zA-Z0-9])est(?=[^a-zA-Z0-9])

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

【讨论】:

  • 谢谢 我也不知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多