我如何编写符合以下条件的正则表达式?
字符串
答案 0 :(得分:64)
字符类[^]中的插入符号是大多数正则表达式实现(Perl,.NET,Ruby,Javascript等)常用的否定操作符。所以我会这样做:
[^\W\s\d]
或者你可以通过简单地只包括你想要的东西来采取另一种方法:
[A-Za-z]
这里的主要区别是第一个将包括下划线。那,它展示了一种用您正在思考的相同术语编写表达式的方法。但是如果你反过来想要包含字符而不是排除它们,那么这有时会导致更容易阅读正则表达式。
我不完全清楚你不想要哪些特殊字符。但是我写了两个解决方案,以防万一你的工作比另一个好。
答案 1 :(得分:2)
在Perl中,它将类似于:
$string !~ /[\d \W]/
当然,这取决于你对“特殊字符”的定义。 \W
匹配所有非单词字符。单词字符是任何字母数字字符加空格字符。
答案 2 :(得分:0)
了解正则表达式最重要的不是它们的语法,而是能够清楚地解释您正在寻找的内容。这确实是问题的90% 此外,通常更好地陈述您想要的而不是您不想要的东西。
答案 3 :(得分:0)
尝试^ [^ 0-9 \ p {P}] $
答案 4 :(得分:-9)
var StringInputToClean = @"[:(M)?*a',\y<>&a#~%{}+.@\\ /27!;$+]";
var pattern = @"[^a-zA-Z0-9\s]";
string replacement = "";
var result = Regex.Replace(StringInputToClean, pattern, replacement);