如何在C#中编写正则表达式,只获取未与数字,特殊字符连接的字母单词。
我有以下文字" 关于时间(2013)[1080p] "并希望输出如关于时间
这是我试过的
string myString="About Time (2013) [1080p]";
Regex.Replace(myString, @"[^a-zA-Z]+", " ");
它会像关于时间p
一样返回答案 0 :(得分:1)
如果您不想Regex
string myString = "About Time (2013) [1080p]";
var words = myString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var alphaWords = string.Join(" ", words.Where(w => w.All(Char.IsLetter)));
它做的是
[1]将字符串拆分为单词(以空格分隔)
[2]仅取所有字符为letter的单词
[3]用空格作为分隔符加入它们
答案 1 :(得分:1)
答案 2 :(得分:0)
string myString="About Time (2013) [1080p]";
Regex.Replace(myString, @"\S*[^a-zA-Z\s]\S*", "");
答案 3 :(得分:0)
private static string FilterTest(string input) => string
.Join(" ", (new Regex(@"[a-z]+",RegexOptions.IgnoreCase))
.Matches(input)
.Cast<Match>().Select(e => e.Value));