匹配孤立的空(或空间填充)括号集

时间:2014-07-27 23:53:39

标签: c# regex regex-negation

虽然这可能是一个微不足道的问题,但我到目前为止如何解决这个问题,所以感谢您的帮助!

我想匹配一组不包含给定字符串中任何参数的括号。除非括号组以字符开头。这些是我的情景。

有效情景:

  • "()"
  • "()"
  • " ()"
  • "()"
  • " ()"
  • " abc()"

无效的情景:

  • " ABC()"

到目前为止我的正则表达式是

\s*\(\s*\)\s*

这使得所有实例显然也获得了abc()。 谁知道我错过了什么?

2 个答案:

答案 0 :(得分:1)

@zerkms以积极的态度为我解决了这个问题。

(?<=^|\s)\(\s*\)

谢谢!

答案 1 :(得分:1)

使用此:

(?<!\S)\(\s*\)

the regex demo 中查看匹配和失败的内容。

<强>解释

  • 负面的lookbehind声称前面的内容不是非空格字符
  • \(\s*\)将您的括号与可选空格匹配

<强>参考