5 分鐘閱讀

正規化檢查重複出現的單詞

使用情境

檢查 fish dog dog cat cat food
檢查出 dog dog, cat cat 兩組

關鍵技術

正規 描述 範例 匹配
\b 匹配一個單詞邊界,也就是指單詞和空格間的位置 er\b 匹配”never”中的”er”,但不能匹配”verb”中的”er”
\w 與任何單詞字符匹配 \w “Room#1” 中的 “R”、 “o”、 “m” 和 “1”
(?< name >subexpression) 將匹配的子表達式捕獲到一個命名組中 (?< double>\w)\k< double> “hello” 中的 “ll”
\k< name > 命名反向引用。匹配命名表達式的值 (?< char>\w+)\k< char> “banana” 中的 “anan”
\s 與任何空白字符匹配 \w\s “ABC1 D C” 中的 “D “

System.Text.RegularExpressions.MatchCollection
成功比對的集合

System.Text.RegularExpressions.Match
比對集合的單一類別

code

string s = textBox1.Text;
System.Text.RegularExpressions.MatchCollection matchs =
  System.Text.RegularExpressions.Regex.Matches(s, @"\b(?<word>\w+)\s+(\k<word>)\b",
  System.Text.RegularExpressions.RegexOptions.Compiled | 
  System.Text.RegularExpressions.RegexOptions.IgnoreCase);
foreach (System.Text.RegularExpressions.Match item in matchs)
{
  string word = item.Groups["word"].Value;
}

額外資訊

RegexOptions枚舉
MatchCollection 類別
Match 類別