gpt4 book ai didi

c# - .Net正则表达式匹配字符串 "C#"

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:22 24 4
gpt4 key购买 nike

我正在尝试构建一个正则表达式(使用 .Net 的 RegEx 对象)来匹配字符序列“C#”与单词边界。

所以在字符串“I am a C# developer, but I am not a C#developper”中搜索,我试图匹配第一个“C#”(作为一个词)而不是第二个“C#”单词的一部分。

  • 我试过模式“\bC#\b”,没有匹配。

  • 我也试过模式“\bC#\b”(试图转义#),没有匹配。

我在某处读到井号 (#) 可以解释为单词边界。这是真的?如果是这样,我们如何查找该字符串 ("C#") 作为一个词?

最佳答案

\b 在井号和空格之间不匹配,因为它们都匹配非单词字符,但在井号和 d 字符之间匹配。

而不是一秒钟 word boundary \b,您可以使用否定先行 (?! 断言右边的内容不是非空白 \S 字符:

\bC#(?!\S)

Regex demo

正如 @elgonzo 的评论中指出的那样, 为防止在 C# 后跟一个非单词字符时中断匹配,您可以使用正向先行断言右侧是一个非单词字符 \W 或断言字符串结束 $

\bC#(?=\W|$)

Regex demo

关于c# - .Net正则表达式匹配字符串 "C#",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55927938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com