Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Regex如何检查单词边界条件unicode_C#_Regex - Fatal编程技术网

C# Regex如何检查单词边界条件unicode

C# Regex如何检查单词边界条件unicode,c#,regex,C#,Regex,我试图检查一个给定的单词(比如匹配词)是否存在于来自外部来源的句子中。在C#中,目前我计划使用下面的正则表达式模式来覆盖这些单词边界场景(matchword应该是单个单词,可以用所有可能的句子或分词字符进行分隔)。匹配词可以位于句子的开头/中间/结尾,有时也可以与字符串完全匹配 应包含多语言文本,不区分大小写 ([\s+,"'\(\[])matchword([\s+;\?\.;,"'\)\]]) 例如, 假设我的匹配词是“test”(不带引号) 示例句子如下: 这是test,string--R

我试图检查一个给定的单词(比如匹配词)是否存在于来自外部来源的句子中。在C#中,目前我计划使用下面的正则表达式模式来覆盖这些单词边界场景(matchword应该是单个单词,可以用所有可能的句子或分词字符进行分隔)。匹配词可以位于句子的开头/中间/结尾,有时也可以与字符串完全匹配

应包含多语言文本,不区分大小写

([\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)