gpt4 book ai didi

c# - 使用正则表达式检测后跟点或空格的单词

转载 作者:太空狗 更新时间:2023-10-30 01:32:43 26 4
gpt4 key购买 nike

我正在使用 regexC# 使用

查找特定单词的出现次数
Regex regex = new Regex(@"\b" + word + @"\b");

如何修改我的正则表达式以仅检测前面有空格、后面有空格或后面有点的单词?

例子:

this.Button.Value - 应该匹配this.value - 应该匹配

document.thisButton.Value - 不应匹配

最佳答案

当关键字用空格括起来或后面跟着一个点时,您可以使用 lookarounds 和 alternation 来检查两种可能性:

var line = "this.Button.Value\nthis.value\ndocument.thisButton.Value";
var word = "this";
var rx =new Regex(string.Format(@"(?<=\s)\b{0}\b(?=\s)|\b{0}\b(?=\.)", word));
var result = rx.Replace(line, "NEW_WORD");
Console.WriteLine(result);

参见 IDEONE demo和一个 regex demo .

模式匹配:

  • (?<=\s)\bthis\b(?=\s) - 以空格开头的整个单词“this”(?<=\s)然后是空格 (?=\s)
  • | - 或者
  • \bthis\b(?=\.) - 整个单词“this”后跟文字 . ( (?=\.) )

由于环视不消耗字符(正则表达式索引保留在原来的位置),与它们匹配的字符不会放在匹配值中,因此在替换过程中不会受到影响。

关于c# - 使用正则表达式检测后跟点或空格的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356252/

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