正則 單詞全字匹配查找 reg 邊界查找 精確匹配 只匹配字符 不含連續的字符



單詞全字匹配查找用的是 單詞邊界 \b查找的關鍵字\b

string類中有個IndexOf和Contains方法,但這2個方法都是包含的意思。


包含

從下面這個圖可以看出邊界和包含的區別,下面每一行都包含roman這個關鍵字,但不是每行都全字匹配roman的 (這里正則開啟了忽略大小寫了).

此圖中包含 每行都有roman ,相當於string類的IndexOf,Contains

image


邊界限制

此圖是是使用了邊界 全字匹配

只有完全一樣的才符合結果

image


\broman\b 正則寫法

image

正則寫成 \b{s}\b 這對C#來說就是 bromanb而不是正則的\broman\b,所以正則要寫成這樣 \\b{s}\\b

/// <summary>
///單詞全字 匹配查找 
/// </summary>
/// <param name="s">要查找的字符串,不區分大小寫</param>
/// <returns>查到返回真,否則返回假</returns>
public static bool Find(string res, string s) {
    return Regex.IsMatch(res, $"\\b{s}\\b", RegexOptions.IgnoreCase);
}




附注:

測試用的文本

正則表達式網址:https://regexr.com/

English Romanticism	英國浪漫主義
German romanticism	德國浪漫主義
Roman Serif	字體
Romanticism literature	唯美主義文學
Uppercase roman	大寫羅馬數碼
early romanticism	前期浪漫主義
holy roman empire	n.神聖羅馬帝國
new romantic	新浪漫;新浪漫主義
racism romanticism	種族關系
roman architecture	羅馬式建築
roman empire	羅馬帝國(指公元前27年到公元476年的羅馬奴隸制國家)
roman law	羅馬法
roman numerals	羅馬數字
romantic love	浪漫愛情
romantic movement	浪漫主義運動(十八世紀末及十九世紀初西歐掀起的文學藝術運動)
times new roman	新羅馬字體
western roman empire	西羅馬帝國


string.IndexOf,string,Contains 要查找的字 不區分大小寫

//如果找到該字符串,則為從當前實例的起始位置開始的從零開始的 value 的索引位置;否則為 -1。 如果 value 為 Empty,則返回值為 startIndex。
public static bool Find1(string res, string s) {
    return res.IndexOf(s, StringComparison.OrdinalIgnoreCase) != -1;
}

//如果 true 參數出現在此字符串中,或者 value 為空字符串 (""),則為 value;否則為 false。
public static bool Find2(string res, string s) {
    return res.ToLower().Contains(s.ToLower());
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM