当我用括号括起来时,正则表达式模式会中断

问题描述 投票:0回答:1

我想匹配由 (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 中使用正则表达式搜索。

regex visual-studio-code regex-group
1个回答
0
投票

添加括号对向后引用重新编号;所以以前在

\1
中的内容现在在
\2
中。

简单来说,

\1
指的是左括号在前的括号捕获的字符串,
\2
对应于第二个左括号,依此类推。

© www.soinside.com 2019 - 2024. All rights reserved.