簡體   English   中英

C#RegEx查找字符串中的特定字符串或所有單詞

[英]C# RegEx to find a specific string or all words in a string

抬起頭來,我以為我理解如何在一個句子中查找多個單詞的字符串,但它找不到匹配項。 有人能告訴我我做錯了什么嗎? 我需要能夠找到單個或多個單詞匹配。 我通過“找到”方法,但沒找到匹配。 此外,如果用戶沒有將其搜索短語括在引號中,我還需要它來搜索輸入的每個單詞。

var pattern = @"\b\" + searchString + @"\b";    //searchString is passed in.

Regex rgx = new Regex(pattern);

var sentence = "I need to find a string in this sentence!";

Match match = rgx.Match(sentence);

if (match.Success)
{
    // Do something with the match.
}

只需刪除第一個@"\\b\\"中的第二個\\

var pattern = @"\b" + searchString + @"\b";
                  ^

請參閱IDEONE演示

請注意,如果您的searchString有特殊的正則表達式元字符(如()[+*等),則可以使用Regex.Escape()來轉義它們:

var pattern = @"\b" + Regex.Escape(searchString) + @"\b";

如果這些字符可能出現在邊緣位置,請使用外觀而不是字邊界:

var pattern = @"(?<!\w)" + searchString + @"(?=\w)";

暫無
暫無

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

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