C# Regex如何检查单词边界条件unicode
我试图检查一个给定的单词(比如匹配词)是否存在于来自外部来源的句子中。在C#中,目前我计划使用下面的正则表达式模式来覆盖这些单词边界场景(matchword应该是单个单词,可以用所有可能的句子或分词字符进行分隔)。匹配词可以位于句子的开头/中间/结尾,有时也可以与字符串完全匹配 应包含多语言文本,不区分大小写C# Regex如何检查单词边界条件unicode,c#,regex,C#,Regex,我试图检查一个给定的单词(比如匹配词)是否存在于来自外部来源的句子中。在C#中,目前我计划使用下面的正则表达式模式来覆盖这些单词边界场景(matchword应该是单个单词,可以用所有可能的句子或分词字符进行分隔)。匹配词可以位于句子的开头/中间/结尾,有时也可以与字符串完全匹配 应包含多语言文本,不区分大小写 ([\s+,"'\(\[])matchword([\s+;\?\.;,"'\)\]]) 例如, 假设我的匹配词是“test”(不带引号) 示例句子如下: 这是test,string--R
([\s+,"'\(\[])matchword([\s+;\?\.;,"'\)\]])
例如,
假设我的匹配词是“test”(不带引号)
示例句子如下:
这是test,string--Result-true
这是测试——结果——错误
这是testest--结果-错误
测试-结果-正确我想在您的情况下,负面的环顾四周可能就足够了:
(?<!\w)test(?!\w)
更好地解释“环顾四周”的含义。不管怎样,上述涉及
\b
的答案在您的情况下要好得多。只要将这个概念作为您可能想要深入了解的内容,以便更好地掌握正则表达式。它的强大之处在于能够选择更复杂的表达式以包含在“向前看”或“向后看”组中。对你来说,这只是一种浪费。试试\btest\b
其中\b表示单词的开头和结尾,或者你可以做(?i)\btest\b
使其不区分大小写谢谢迭戈的回复。你介意详细说明一下正则表达式吗?
Regex.IsMatch(subjectString, @"(?<!\w)test(?!\w)", RegexOptions.IgnoreCase)