.net - 正则表达式匹配错误

标签 .net regex

这个正则表达式:

^[a-zA-Z0-9 -.,()/\n/\r]+$  

在 .NET 中总是匹配

“#”或“$”或“!”或“%”或“&”或“*”或“+”

所以要清楚,这一行:

Regex.IsMatch("!", @"^[a-zA-Z0-9 -.,()/\n/\r]+$");

返回真值。为什么会这样?

最佳答案

- 在字符类中使用时描述一个范围

因此您正在尝试匹配从 space 的字符。

- 移动到字符类的结尾或开头或将其转义 \-

现在指的是ascii table您正在指定从 ascii 十进制值 32 到 46 的范围,其中包括 !,",#,$, %........


所以,应该是

^[-a-zA-Z0-9 .,()/\n/\r]+$ 
  ^

^[a-zA-Z0-9 .,()/\n/\r-]+$   
                      ^

或者逃避它

^[a-zA-Z0-9 \-.,()/\n/\r]+$   
             ^

关于.net - 正则表达式匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17428254/

相关文章:

c# - 为什么 Generic Casting 不适用于这部分代码?

python - 如何从句子中提取字符ngram? - Python

c# - 网站地址验证的正则表达式

regex - 如何使用 Perl 有选择地修改 HTML 文档中脚本标记的 src 属性?

c# - 使用 SqlCommand,如何向其对象添加多个参数,通过 winform 插入 sql 表

c# - Console.SetError 是线程安全的吗?

c# - 静态类asp.net mvc中的静态变量

python - 从多个列表中的多个元素查找文本文件中的模式?

javascript - 我想找到数字 - 包括点和逗号 - 但正则表达式在 javascript 中不起作用

.net - ORM 映射器 .NET linux 服务器