[英]Match any special characters (including underscore, but not space) that are not letters
我想匹配任何不是数字或字母(人们用来写字)的特殊字符。 我想包括下划线,因为下划线既不是数字也不是单词中使用的字母。 但我不想包括空格。
简而言之,我想匹配除最后两个之外的每个人。
12345_678
12345*678
12345-678
12345&678
12345-678
12345あ678
12345 678
我不能使用[^a-zA-Z0-9]
因为它不包括非拉丁字母,如日语。 \\d+(\\W|_)\\d+
得到了不需要的空间。 什么是最好的正则表达式?
使用以下也忽略日语字母:
[^a-zA-Z\d\s-ゟ゠-ヿ一-龯]
以下正则表达式将匹配既不是字母数字字符(包括不同字母表的字符,例如在日本或韩国使用的字符)也不是空格的任何字符。
([^\w ]|_)
请注意显式匹配下划线字符的更改,这是必要的,因为下划线是 \\w 字符类的一部分,因此不会单独由[^\\w ]
匹配。 (另请注意,该模式在 \\w 之后有一个空格字符)
如果不只是简单的空格字符而且任何其他空白字符(例如制表符)也应该从匹配中排除,那么以下稍微修改的模式可能更合适:
([^\w\s]|_)
您可能需要查看Unicode 字符类别。 似乎您需要匹配Symbols和Punctuation 。
var regexPattern = @"[\p{S}\p{P}]";
符号包括 +、-、=、<、$、^、|、§ 等
标点符号包括 _, —, (, {, ", », !, ?, #, * 等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.