正则表达式匹配(但不是\(

时间:2013-03-06 22:49:40

标签: regex

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

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

编辑: 更换后的所需结果:,55 \(9187x100 ASP \)5 然后我可以删除\并得到我想要的字符串,55(9187x100 ASP)5

编辑:我正在使用VB.NET

3 个答案:

答案 0 :(得分:2)

这将匹配括号前面没有斜线的括号(以及它们之前的字符):

[^\\]\(

答案 1 :(得分:1)

嗯,你必须考虑上下文。首先,您希望没有\,然后您需要()

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

但是你可以把两个paranthesis都放在一个字符类

[^\\][\)\(]

答案 2 :(得分:0)

使用后视你只能匹配"("或")"不会立即由" \":

继续进行
/(?<!\\)[\(\)]/