在正则表达式中转义括号

时间:2014-05-14 16:03:51

标签: regex

我有一个正则表达式,最后有可选的锚点,例如

(\.|,|\/)

我正在尝试添加“)”,但如果我逃避它

(/.|,|\/|\))

找不到它,如果没有找到,它被视为表达式的一部分并因为没有打开的parens而失败。我如何逃脱它,以便将其视为一个角色并找到?

4 个答案:

答案 0 :(得分:10)

\)是转义括号的正确方法。确保您正确转义字符串文字中的\\\)。

答案 1 :(得分:9)

如果您想匹配一组角色中的一个,最好使用character class。在这样的课程中,大多数逃避规则都不适用。

因此,要匹配点,逗号,斜线或右括号,可以使用

[.,/)]

答案 2 :(得分:4)

更容易使用十六进制代码,没有C#转义; (的代码为\x28,其对应的)\x29

然后在你的模式中使用

\x28[^\x29]+\x29 # which escaped would be \)[^\)]+\)

\x28.+?\x29

哪个匹配:

(abc)


我也在我的正则表达式模式中使用双引号(\x22)和单引号(\x27)这是撇号。

它使得在使用C#编码时更容易使用正则表达式模式。

答案 3 :(得分:1)

你的正则表达式应如下所示: (\.|,|\/|\))

使用http://rubular.com/

进行测试