我想匹配由 (1) 单引号或 (2) 双引号或 (3) 括号包围的任何非空文本。例如
"wekj fowekjf e"
或 'ohogkwoefo je e'
但 不是 "dl ekj)
。我发现模式 (["']).+\1|\(.+\)
可以工作,但是如果我用一对外部括号包围这个模式,使其成为 ((["']).+\1|\(.+\))
,那么它就会中断,因为它匹配像 "owoek fij kefw )
这样的字符串,而这不应该匹配。 这是为什么?
我需要用括号将模式括起来,因为我需要将它捕获到一个组中。
测试用例:
"wdok jeow i "
'oi foeifjeifj ei'
(ekj foiejowek)
£doihoiefj£
ekfj ei
"owoek fij kefw )
预期结果:前 3 行应该匹配,但其他行不应匹配。特别是,最后一行不应该匹配。
编辑
忘了提及我使用的正则表达式引擎。我暂时只是在 VSCode 中使用正则表达式搜索。
添加括号对向后引用重新编号;所以以前在
\1
中的内容现在在 \2
中。
简单来说,
\1
指的是左括号在前的括号捕获的字符串,\2
对应于第二个左括号,依此类推。