0

我正在尝试创建一个正则表达式来匹配字符串中的每个 ( 和 ),但排除 \( 和 \)。这样我就可以替换每个括号,但保留前面带有斜线的括号。

示例字符串: (,)(5)(5)( )(\()(9)(1)(87x)(100 )(ASP\)( )(5)

编辑:替换后的期望结果:,55 \(9187x100 ASP\) 5 然后我可以删除 \ 并获得我想要的字符串,55 (9187x100 ASP) 5

编辑:我正在使用 VB.NET

4

3 回答 3

2

这将匹配括号前面没有斜杠(以及前面的字符):

[^\\]\(
于 2013-03-06T22:51:23.590 回答
1

好吧,您必须考虑上下文。所以首先你想要没有 a\然后你想要 a(或 a )

[^\\]\(
[^\\]\)

但是你可以把两个括号放在一个字符类中

[^\\][\)\(]
于 2013-03-06T22:51:33.030 回答
0

使用look-behind,您只能匹配没有立即以“\”开头的“(”或“)”:

/(?<!\\)[\(\)]/
于 2013-03-06T23:18:06.707 回答