select 括号内的所有字符的正则表达式,前提是存在等号
regex to select all characters enclosed by parenthesis provided equals sign is present
我正在使用以下正则表达式 select 任何用括号括起来的字符串:
/\(([^()]+)\)/g
但是,我想 select 仅当字符串中存在等号时,例如:
(28%) - 未 selected
(A = 28%) - selected
这可能吗?
正如@Wiktor 提到的 /\(([^()]*=[^()]*)\)/g
可以解决您的问题,
可以通过 Look-Head 断言在编程语言
中像 if
一样工作
\(.*(?==).*?\)
look-head是(?=)
,你可以在=
符号后插入你想要的。它是正则表达式的一部分,而不是常规的等号。所以你需要 (?==)
在你的代码中。就是这样。
要添加到 Wiktor 的评论和 RaR 的回答中,*
也将匹配这些情况:(=28%)
、(A=)
,您可能不希望这样。您可以使用 +
来确保 =
.
两边都有字符
\([^(]+=[^)]+\)
我正在使用以下正则表达式 select 任何用括号括起来的字符串:
/\(([^()]+)\)/g
但是,我想 select 仅当字符串中存在等号时,例如:
(28%) - 未 selected
(A = 28%) - selected
这可能吗?
正如@Wiktor 提到的 /\(([^()]*=[^()]*)\)/g
可以解决您的问题,
可以通过 Look-Head 断言在编程语言
中像if
一样工作
\(.*(?==).*?\)
look-head是(?=)
,你可以在=
符号后插入你想要的。它是正则表达式的一部分,而不是常规的等号。所以你需要 (?==)
在你的代码中。就是这样。
要添加到 Wiktor 的评论和 RaR 的回答中,*
也将匹配这些情况:(=28%)
、(A=)
,您可能不希望这样。您可以使用 +
来确保 =
.
\([^(]+=[^)]+\)