代码之家  ›  专栏  ›  技术社区  ›  Shane

匹配一组空(或空格填充)括号

  •  3
  • Shane  · 技术社区  · 10 年前

    虽然这可能是一个微不足道的问题,但到目前为止,如何解决这一问题,我感到捉襟见肘,因此提前感谢您的帮助!

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

    有效方案:

    • "()"
    • "( )"
    • " ()"
    • "() "
    • " ( ) "
    • “abc()”

    无效方案:

    • “abc()”

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

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

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

    2 回复  |  直到 10 年前
        1
  •  1
  •   zx81    10 年前

    使用此项:

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

    查看匹配项和失败项 the regex demo .

    解释

    • 负查找断言前面的不是非空白字符
    • \(\s*\) 将括号与可选空格匹配

    参考

        2
  •  1
  •   Shane    10 年前

    @zerkms用积极的眼神为我解决了这个问题。

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

    谢谢