Regex 扩展正则表达式字符串

Regex 扩展正则表达式字符串,regex,Regex,所以我对正则表达式不是很熟悉,看过一些教程以及它是如何工作的,但我还是不明白 不管怎样,这是我当前拥有的字符串:^[a-zA-Z0-9]*$ 我希望它能够使用以下字符:[]()(并且能够使用空格) 编辑:对于空格,让我们假设以下字符串:[Something]Something,可以将正则表达式设置为:^[][a-zA-Z0-9]*$?在字符类的开头包含],如下所示: ^[]a-zA-Z0-9]*$ 其余部分可以在无场景的情况下插入: ^[][()|a-zA-Z0-9]*$ 当然,除非你不是在

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

不管怎样,这是我当前拥有的字符串:
^[a-zA-Z0-9]*$

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


编辑:对于空格,让我们假设以下字符串:
[Something]Something
,可以将正则表达式设置为:
^[][a-zA-Z0-9]*$

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

^[]a-zA-Z0-9]*$
其余部分可以在无场景的情况下插入:

^[][()|a-zA-Z0-9]*$
当然,除非你不是在谈论角色类

编辑:开头的方括号可以解释为方括号表达式,因此跳过该表达式可能更安全:

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

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

^[[\]a-zA-Z0-9 ()|]*$
[^^.*()|[\]\\-]
需要使用的所有其他字符不需要转义


另外,在字符类中需要转义的字符只有:

  • ]
    结束括号(显然)
  • \
    反斜杠(显然)
  • ^
    ,但仅当不在否定类中时(以
    ^
    开头)
  • -
    ,但仅当不是字符类中的第一个或最后一个字符时
在字符类中使用时,所有其他字符都会失去正则表达式的含义。例如,这是一个有效的字符类:

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

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

是的,这很完美。你应该知道的最后一件事(确切地说,我不知道还有什么)是破折号属于字符类的末尾(或开头),因为否则它们会指定范围。@acheong87可能缺少咖啡?