[英]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.