【发布时间】:2012-11-03 22:04:40
【问题描述】:
【问题讨论】:
标签: c# regex filter alphabetical
【问题讨论】:
标签: c# regex filter alphabetical
要删除所有字母,试试这个:
void Main()
{
var str = "some junk456456%^&%*333";
Console.WriteLine(Regex.Replace(str, "[a-zA-Z]", ""));
}
【讨论】:
要过滤多个字母字符,请使用
^[a-zA-Z]+$
【讨论】:
\w 做了你想要的,但对于字母数字,所以如果你得到答案只是用“alpha”替换“alphanumerics”而不神奇地知道还有什么可能你的代码有问题。
为了过滤 out 只有英文字母使用:
[^a-zA-Z]+
用于过滤 字母,无论使用何种语言:
[^\p{L}]+
如果您想反转效果,请删除左括号后面的帽子^。
如果您想找到与模式匹配的整行,请将上述模式括在^ 和$ 符号中,否则你不需要它们 .请注意,要使它们对每一行生效,您需要创建 Regex 对象并启用多行选项。
【讨论】:
[^\p{L}],您只需将\P{L} 与大写P 一起编写即可获得否定版本。
试试这个简单的方法:
var result = Regex.Replace(inputString, "[^a-zA-Z\s]", "");
解释:
+匹配前一个元素一次或多次。
[^character_group]否定:匹配任何不在 character_group 中的单个字符。
\s匹配任何空白字符。
【讨论】: