我需要一些帮助来编写一个正则表达式,该正则表达式将括号中的字符串与嵌套括号匹配并以模式开头。 (注意:“父”括号中的文本可以没有嵌套括号)
例子:
Some text (pattern: SOME TEXT THAT (I WANT TO EXTRACT)) a bit more text (another pattern: ignore that text) and may be a little more text
结果应该是:SOME TEXT THAT (I WANT TO EXTRACT)
Some text (pattern: SOME TEXT THAT (I WANT TO EXTRACT)) a bit more text (another pattern: ignore that text) and may be a little more text
结果应该是SOME TEXT THAT (I WANT TO EXTRACT)
Some text (pattern: SOME TEXT THAT I WANT TO EXTRACT) a bit more text (another pattern: ignore that text) and may be a little more text
结果应该是SOME TEXT THAT I WANT TO EXTRACT
我尝试过的正则表达式/\((pattern:?\s?([^\)]+))\)/gi
错过了嵌套)
因此,您正在查找括号中的所有文本,以“pattern:”开头,后跟一个字符串,该字符串可以选择包含一组匹配的括号。
这远不可读,但这样就可以了:
\(pattern:([^()]+|[^(]+\([^)]*\)[^()]*)\)
用一句话来说就是:寻找(pattern: ...)
where ...
是不是括号的字符串(我们称它们为 NPC - 这就是[^()]+
部分)或一系列 NPC,后跟一个左括号,后跟一系列 NPC,后跟一个右括号,以及可选的另一串 NPC(即[^(]+\([^)]*\)[^()]*
part).
当然,这不能处理更多级别或嵌套,但如果我正确理解问题,则不需要它(无法制定处理任意嵌套的正则表达式)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)