我正在尝试创建一个正则表达式来匹配字符串中的每个(和),但排除\(和\)。这样我就可以替换每个括号,但保留在它们前面的斜线。
示例字符串:(,)(5)(5)()(\()(9)(1)(87x)(100)(ASP \)()(5)
编辑: 更换后的所需结果:,55 \(9187x100 ASP \)5 然后我可以删除\并得到我想要的字符串,55(9187x100 ASP)5
编辑:我正在使用VB.NET
答案 0 :(得分:2)
这将匹配括号前面没有斜线的括号(以及它们之前的字符):
[^\\]\(
答案 1 :(得分:1)
嗯,你必须考虑上下文。首先,您希望没有\
,然后您需要(
或)
。
[^\\]\(
[^\\]\)
但是你可以把两个paranthesis都放在一个字符类
中[^\\][\)\(]
答案 2 :(得分:0)
使用后视你只能匹配"("或")"不会立即由" \":
继续进行/(?<!\\)[\(\)]/