2

所以我对正则表达式不是很熟悉,看过一些教程以及它是如何工作的,但我还是不明白!

无论如何,这是我拥有的当前字符串:^[a-zA-Z0-9]*$

我希望它能够使用以下字符:([ ] ( ) |并且能够使用空格)

编辑:对于空格,让我们说以下字符串:[Something] Something,是否可以使用正则表达式:^[][a-zA-Z0-9 ]*$

4

2 回答 2

3

]您需要在字符类中转义右方括号(仅):

^[[\]a-zA-Z0-9 ()|]*$

您需要使用的所有其他字符都不需要转义。


顺便说一句,您需要在字符类中转义的唯一字符是:

  • ]右括号(显然)
  • \反斜杠(显然)
  • ^,但前提是不在负类中(以 开头^
  • -,但前提是不是字符类中的第一个或最后一个字符

在字符类中使用时,所有其他字符都失去了它们的正则表达式含义。例如,这是一个有效的字符类:

[^^.*()|[\]\\-]

这意味着“除任何字符之外的任何字符^.*()|[]\-

于 2012-09-13T00:50:51.120 回答
2

包括]在字符类的开头,如下所示:

^[]a-zA-Z0-9]*$

其余的可以不转义地插入:

^[][()|a-zA-Z0-9]*$

当然,除非您不是在谈论字符类。

编辑:左括号可以解释为括号表达式,因此转义该括号可能更安全:

^[]\[()|a-zA-Z0-9]*$
于 2012-09-13T00:03:23.187 回答