正则表达式 - 逃脱或字符块?

时间:2012-08-14 16:07:19

标签: java regex

如果在字符串中需要问号,那么最好的方法是什么。

...[?]...

...\?...

示例:

文字bla?bla将与模式bla[?]blabla\?bla(显然不是bla?bla)相匹配,但有没有理由使用其中一个?< / p>

1 个答案:

答案 0 :(得分:3)

没有技术上的理由偏爱另一个:它们是等同的表达。字符类仅用于避免输入反斜杠,因此恕我直言,转义版本是“更清洁”

但原因可能是避免在输入时双重转义斜杠。在像java这样的语言中,转义版本的文字版本如下所示:

// in java you need to escape a backslash with another backslash :(
String regex = "...\\?..."; 

可能是正则表达式来自哪里有类似的问题而且比[?]更容易阅读\\?