gpt4 book ai didi

javascript - 匹配字符串的正则表达式包含右括号

转载 作者:行者123 更新时间:2023-11-30 08:27:53 24 4
gpt4 key购买 nike

我需要创建正则表达式规则来匹配不包含 ( ) 字符的字符串以及包含它们但始终关闭(但不嵌套)的字符串。另一件事那个空的 () 也是错误的

好的字符串(应该匹配):

aaaaaa
(asdasd)
aaaa(bbb)a
(aaa)aaaa
aaaaaa(aaaa)
aaaa(bbb)(ccc)ddd
aaaa(bbbb)cccc(dddd)eeee

错误的字符串(不应该匹配):

)aaaa
)aaaa(asd)
aaaaaa(
aaaa(bbb))
aaa(bbb
aaaaa((bbbb)cccc
aaaa(bbbb))ccc
aaaa(aasd(adssad))ad
adassd(aas(add)adsa(asda)ad)
()

尝试并创建了类似这样的东西 (?!.*[(]{2,})(?!.*[)]{2,})(?![)])(?!.* [(]$).*$ 但仍然不好。有什么帮助吗?

最佳答案

您可以将此正则表达式用于您的工作:

/^(?!$)(?:[^)(]*\([^()]+\))*[^)(]*$/gm

RegEx Demo

正则表达式分解:

  • ^ - 行开始
  • (?!$) - 否定前瞻以确保我们不匹配空字符串
  • (?: - 非捕获组的开始
    • [^)(]* - 匹配 0 个或多个除 ()
    • \( - 匹配一个 (
    • [^()]+ - 匹配 1 个或多个除 ()
    • \) - 匹配文字 )
  • )* - 非捕获组结束,*使其匹配0或更多次
  • [^)(]*- 匹配 0 个或多个除 ()
  • $ - 行结束

关于javascript - 匹配字符串的正则表达式包含右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42397316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com