簡體   English   中英

如何在C#中編寫正則表達式以僅獲取字母單詞

[英]how to write regular expression in C# to get only alphabets words

如何在C#中編寫正則表達式,以僅獲取未與數字,特殊字符連接的字母單詞。
我有以下文本“ About Time(2013)[1080p] ”,並希望輸出諸如About Time

這就是我嘗試過的

string myString="About Time (2013) [1080p]";
Regex.Replace(myString, @"[^a-zA-Z]+", " ");

像這樣回來回來關於時間p

如果您想不使用正則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]僅采用所有字符均為字母的單詞
[3]使用空格作為分隔符將它們重新連接起來

您可以使用\\ b檢查單詞邊界

\b[a-zA-Z]+\b

但是通過這種方式,您仍然可以在圓括號或方括號之間找到單詞

這里的例子

string myString="About Time (2013) [1080p]";
Regex.Replace(myString, @"\S*[^a-zA-Z\s]\S*", "");
private static string FilterTest(string input) => string
                      .Join(" ", (new Regex(@"[a-z]+",RegexOptions.IgnoreCase))
                      .Matches(input)
                      .Cast<Match>().Select(e => e.Value));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM