首页 >后端开发 >C++ >如何在 C# 中使用正则表达式仅匹配整个单词?

如何在 C# 中使用正则表达式仅匹配整个单词?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-22 20:02:10629浏览

How Can I Use Regex in C# to Match Whole Words Only?

在C#中使用正则表达式匹配完整单词

在编程中,经常需要从字符串中提取特定的单词。在C#中,正则表达式(Regex)为此类任务提供了一个强大的工具。但是,如果不加考虑,匹配整个单词可能会很棘手。

考虑以下场景:您有一个服装店网站,并且想要匹配与服装相关的单词,例如“shoes”、“shirt”或“pants”。您编写了一个正则表达式:

<code>string keywords = "(shoes|shirt|pants)";</code>

并尝试使用以下代码在内容字符串中查找这些单词:

<code>Regex.Match(content, keywords + "\s+",
  RegexOptions.Singleline | RegexOptions.IgnoreCase).Success</code>

但是,此正则表达式会错误地匹配“participants”,因为它包含“pants”作为子字符串。为了只匹配精确的单词,务必使用单词分隔符,用\b表示。

修改后的正则表达式变为:

<code>\b(shoes|shirt|pants)\b</code>

通过添加单词分隔符,正则表达式现在期望匹配的单词前面和后面要有空格、标点符号或字符串的开头/结尾。在代码中,此修改后的表达式将是:

<code>Regex.Match(content, @"\b(shoes|shirt|pants)\b");</code>

通过此修改,正则表达式将只匹配内容字符串中的字面单词“shoes”、“shirt”和“pants”。

以上是如何在 C# 中使用正则表达式仅匹配整个单词?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn