这个正则表达式:
^[a-zA-Z0-9 -.,()/\n/\r]+$
Run Code Online (Sandbox Code Playgroud)
在.NET中始终匹配
"#"或"$"或"!" 或"%"或"&"或"*"或"+"
所以要清楚,这一行:
Regex.IsMatch("!", @"^[a-zA-Z0-9 -.,()/\n/\r]+$");
Run Code Online (Sandbox Code Playgroud)
返回true.为什么会这样?
Ani*_*dha 10
-在字符类中使用时描述了一个范围
所以你试图匹配space到的字符.
移动-到字符类的结尾或开头或转义它\-
现在参照ASCII表要指定从ASCII十进制值32的范围内,直到46,其包括!,",#,$,%........
所以,它应该是
^[-a-zA-Z0-9 .,()/\n/\r]+$
^
Run Code Online (Sandbox Code Playgroud)
要么
^[a-zA-Z0-9 .,()/\n/\r-]+$
^
Run Code Online (Sandbox Code Playgroud)
或逃避它
^[a-zA-Z0-9 \-.,()/\n/\r]+$
^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |