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