Jon*_*eet 42
我不知道完整的字符集 - 但我不会依赖这些知识,我也不会把它放到代码中.相反,Regex.Escape只要我想要一些我不确定的文字文本,我就会使用它:
// Don't actually do this to check containment... it's just a little example.
public bool RegexContains(string haystack, string needle)
{
Regex regex = new Regex("^.*" + Regex.Escape(needle) + ".*$");
return regex.IsMatch(haystack);
}
Run Code Online (Sandbox Code Playgroud)
Meg*_*wal 25
以下是需要转义以将其用作普通文字的字符列表:
[\ ^ $ . | ? * + (和闭合圆形支架) {#这些特殊字符通常称为"元字符".
但是,我同意Jon Regex.Escape在代码中使用而不是硬编码这些字符.
JDB*_*JDB 13
请参阅此处的MSDN文档:http://msdn.microsoft.com/en-us/library/az24scfc.aspx#character_escapes
完整列表的问题在于它取决于上下文.例如,.必须进行转义,除非它括在括号中,如[.].]技术上不需要逃脱,除非它在之前[.-没有特殊意义,除非它在括号内,如[A-Z].=有除非它前面有没有特殊的含义?,如(?=).
L.B*_*L.B 13
我想你可以把字符列表作为
List<char> chars = Enumerable.Range(0,65535)
.Where(i=>((char)i).ToString()!=Regex.Escape(((char)i).ToString()))
.Select(i=>(char)i)
.ToList();
Run Code Online (Sandbox Code Playgroud)
-
\t\n\f\r#$()*+.?[\^{|
Run Code Online (Sandbox Code Playgroud)