在RegEx之前应该转义的所有字符的列表?

有人可以给出一个完整的特殊字符列表,应该逃脱吗?

我担心我不知道其中的一些。

看一下PHP.JS的PHP的preg_quote函数的实现,应该做你需要的:

http://phpjs.org/functions/preg_quote:491

特殊的正​​则expression式字符是: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

根据这个网站 ,逃脱的人物名单是

[,反斜杠\,插入符号^,美元符号$,句号或圆点,竖线或竖线符号,问号,星号或星号,加号+,圆括号和结束圆括号)。

除此之外,您还需要将Javascript解释器解释的字符转义为string的结尾,即'"

连字符( – )需要在方括号内的时候进行转义,而不是在开头或结尾处,例如:需要转义

 [a-z0-9\-_]+ 

没有必要逃避 – 为

 [a-z0-9_-]+ 

基于Tatu Ulmanen的回答,我在C#中的解决scheme采取了这样的forms:

 private static List<string> RegexSpecialCharacters = new List<string> { "\\", ".", "+", "*", "?", "[", "^", "]", "$", "(", ")", "{", "}", "=", "!", "<", ">", "|", ":", "-" }; foreach (var rgxSpecialChar in RegexSpecialCharacters) rgxPattern = input.Replace(rgxSpecialChar, "\\" + rgxSpecialChar); 

请注意,我已经改变了'\'和'。'的位置,未能先处理斜杠会导致'\'的翻倍