Javascript 保持外部支架匹配,而不重复内部模式

Javascript 保持外部支架匹配,而不重复内部模式,javascript,regex,Javascript,Regex,如何重写这个正则表达式/\[.+\]\{.+\}/但不重复内部模式/+/ 必须匹配: [美国广播公司] {abc} 不能匹配: [abc} {abc] 在正则表达式中,您可以使.non-greedy.+?。当贪婪时,这将匹配此字符串中从开始[a]到结束b]的位置: [abc]{a}[b] 如果没有“.+或“+”,您可以使用它作为替代 这将符合: \[ # Match [ [^[\n]+? # Match not [ or a newline one or more times non

如何重写这个正则表达式/\[.+\]\{.+\}/但不重复内部模式/+/

必须匹配:

[美国广播公司] {abc} 不能匹配:

[abc} {abc]
在正则表达式中,您可以使.non-greedy.+?。当贪婪时,这将匹配此字符串中从开始[a]到结束b]的位置:

[abc]{a}[b]

如果没有“.+或“+”,您可以使用它作为替代

这将符合:

\[ # Match [ [^[\n]+? # Match not [ or a newline one or more times non greedy ] # match ] | # Or { # Match { [^{\n]+? # Match not { or a new line one or more times non greedy } # match } 或者,如果这只是关于abc,您可以使用\[abc]{abc}

在regex101.com和prce selected上运行两个regex时,它们给出的执行步骤数相同,因此我认为这不会更快


为什么?你现在的表达有什么问题吗?我相信写得尽可能简单总是好的,因为它可以提高性能和可读性。如果有更简单更有效的方法,我想学习。