3

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

...[?]...

或者

...\?...

例子:

文本bla?bla将与模式bla[?]blabla\?blabla?bla不明显)匹配,但有什么理由使用一个而不是另一个?

4

1 回答 1

3

没有技术上的理由偏爱其中之一:它们是等价的表达方式。字符类仅用于避免输入反斜杠,因此恕我直言,转义版本“更干净”

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

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

可能是正则表达式来自哪里都有类似的问题,并且[?]\\?

于 2012-08-14T17:48:10.153 回答