在C#中,正規表示式常用於在文字中尋找特定模式。然而,當試圖匹配完整單字時,需要注意避免匹配部分單字的情況。
假設需要在一個文字中找出「shoes」、「shirt」或「pants」這些字:
<code>string keywords = "(shoes|shirt|pants)";</code>
使用Regex.Match
方法似乎很簡單:
<code>if (Regex.Match(content, keywords + "\s+", RegexOptions.Singleline | RegexOptions.IgnoreCase).Success) { //匹配 }</code>
但是,這個表達式也會匹配諸如“participants”之類的單詞,因為它將“pants”視為較大單詞中的部分匹配。為了解決這個問題,我們需要明確地匹配完整單字。
正規表示式中的單字邊界以b
字元表示。透過在正規表示式中新增單字邊界,可以確保只識別完全匹配的單字:
<code>Regex.Match(content, @"\b(shoes|shirt|pants)\b");</code>
以下是根據您的標準正確匹配單字的更新代碼:
<code>string keywords = "(shoes|shirt|pants)"; if (Regex.Match(content, @"\b(shoes|shirt|pants)\b").Success) { //匹配 }</code>
透過此修改,只有「shoes」、「shirt」和「pants」這三個完整單字才會被視為匹配,確保匹配操作的準確性。
以上是如何在 C# 中僅使用正規表示式來匹配整個單字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!