在C#,我想使用正则表达式来匹配任何这些单词:
string keywords = "(shoes|shirt|pants)";
Run Code Online (Sandbox Code Playgroud)
我想在内容字符串中找到整个单词.我以为这样regex做会:
if (Regex.Match(content, keywords + "\\s+",
RegexOptions.Singleline | RegexOptions.IgnoreCase).Success)
{
//matched
}
Run Code Online (Sandbox Code Playgroud)
但是对于像这样的单词participants,它会返回true ,即使我只想要整个单词pants.
我如何仅匹配那些文字?
参考我的问题正则表达式匹配整个单词与特殊字符不起作用?,
我得到了答案
@"(?<=^|\s)" + pattern + @"(?=\s|$)"
Run Code Online (Sandbox Code Playgroud)
这适用于除1例外的所有情况.当模式中有空间时,它会失败.
假设字符串是"嗨这是stackoverflow",模式是"this",然后它说没有匹配.这是因为模式中的实际字符串后面有空格.
我们怎么办呢?理想情况下应该说找到一场比赛!