如何使用正则表达式提取仅包含字母的单词列表?
正则表达式解决方案
你需要的是提取完全由字母组成的完整单词,而非按非字母拆分后保留零散字母片段。之前用Split的思路会把含非字母的单词拆成多段,改用Regex.Matches直接匹配符合要求的单词更合适。
实现代码
var regex = new Regex(@"\b[a-zA-Z]+\b", RegexOptions.Compiled); var words = regex.Matches(text) .Cast<Match>() .Select(m => m.Value) .ToList();
逻辑说明
\b:单词边界,确保匹配的是独立完整的单词(避免从t3st这类带数字的字符串里截取t或st片段)[a-zA-Z]+:匹配一个或多个大小写字母组成的序列Regex.Matches:一次性找出所有符合规则的完整单词,直接得到目标列表
测试输入This is a t3st时,返回结果为["This", "is", "a"],完全符合预期。
内容的提问来源于stack exchange,提问作者Mohsen Esmailpour
相关产品推荐
相关产品推荐

