可能重复:
正则表达式 - 只有字母?
我尝试从文本中过滤掉字母([az],[AZ])。
我试过"^\w$"
了,但它过滤了字母数字(字母和数字)。
过滤掉字母的模式是什么?
谢谢。
要删除所有字母,请尝试以下操作:
void Main()
{
var str = "some junk456456%^&%*333";
Console.WriteLine(Regex.Replace(str, "[a-zA-Z]", ""));
}
要仅过滤掉英文字母,请使用:
[^a-zA-Z]+
无论使用何种语言,都可以过滤掉字母:
[^\p{L}]+
如果要反转效果,请在^
左括号后立即移除帽子。
如果您想找到与模式匹配的整行,则将上述模式括在^
和$
符号内,否则您不需要它们。请注意,要使它们对每一行生效,您需要创建 Regex 对象并启用多行选项。
试试这个简单的方法:
var result = Regex.Replace(inputString, "[^a-zA-Z\s]", "");
解释:
+
匹配前一个元素一次或多次。
[^character_group]
否定:匹配任何不在 character_group 中的单个字符。
\s
匹配任何空白字符。
要过滤多个字母字符,请使用
^[a-zA-Z]+$