Csharp/C#教程:所有非字母数字符号的正则表达式分享


所有非字母数字符号的正则表达式

我正在尝试为其中至少包含1个非字母数字符号的字符串创建正则表达式

我试图使用的代码是

Regex symbolPattern = new Regex("?[!@#$%^&*()_-+=[{]};:|./?.]"); 

我只想匹配其中一个!@#$%^&*()_-+=[{]};:|./?. 但它似乎没有起作用。

如果要匹配非字母数字符号,请使用W|_

 Regex pattern = new Regex(@"W|_"); 

这将匹配除0-9和az之外的任何内容。 有关W字符类的信息以及此处提供的其他信息。

如果需要,您还可以避免使用正则表达式:

 return s.Any(c => !char.IsLetterOrDigit(c)) 

你能检查相反的情况吗?

 Match match = Regex.Match(@"^([a-zA-Z0-9]+)$"); if (!match.Success) { // it's alphanumeric } else { // it has one of those characters in it. } 

我没有得到你的整个问题,但这个正则表达式将匹配包含至少一个非字母数字字符的字符串。 这包括空格(虽然在你的列表中看不到)

 [^w]+ 

你的正则表达式只需要很少的调整。 连字符用于形成AZ范围,因此如果要匹配文字连字符,则必须使用反斜杠将其转义或将其移动到列表的末尾。 您还需要转义方括号,因为它们是字符类的分隔符。 然后在开始时摆脱那个问号,你就是在做生意。

 Regex symbolPattern = new Regex(@"[!@#$%^&*()_+=[{]};:<>|./?,-]"); 

如果您只想匹配ASCII标点字符,这可能是最简单的方法。 W除了标点符号外还匹配空格和控制字符,并且它与整个Unicode范围匹配,而不仅仅是ASCII。

但你似乎缺少一些字符:反斜杠,撇号和引号。 添加这些为您提供:

 @"[!@#$%^&*()_+=[{]};:<>|./?,\'""-]" 

最后,总是使用C#的逐字字符串文字( @"..." )作为正则表达式是个好主意; 它可以为您节省大量的反斜杠麻烦。 报价标记通过加倍来逃避。

上述就是C#学习教程:所有非字母数字符号的正则表达式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1251037.html

(0)
上一篇 2022年11月8日
下一篇 2022年11月8日

精彩推荐