gpt4 book ai didi

c# - 使用正则表达式查找单词

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:51 26 4
gpt4 key购买 nike

在包含数值的字符串中,例如:

6.1, 6.1.1, 6.1.2.

我想找到(并替换)整个单词 "6.1" 并忽略以 "6.1" 开头的其他单词。我尝试在我的正则表达式中使用 \b:

Dim OrginalString as String  = "Sample text with numeric values starting with 6.1 followed by 6.1.1, 6.1.2 "
Dim wordToFind as String = "6.1"
Dim pattern As String = [String].Format("\b({0})\b", wordToFind)
Dim ret As String = Regex.Replace(OrginalString, pattern, "1234",RegexOptions.IgnoreCase)

但它替换了所有以 “6.1” 开头的数字“单词”。这是结果:

ret = "Sample text with numeric values starting with 1234 followed by 1234.1, 1234.2 "

我可以使用 VB 或 C# 解决方案。

成功了。 :) 谢谢 Casimir et Hippolyte!

最佳答案

您可以使用否定前瞻:

6\.1(?![.\d])

(?!...) 表示“后面没有”,只是一个检查,不是匹配结果的一部分。

注意:\b 仅相对于 \w 字符类,因为 . 不在此类中,所以有6.1.2

1.2 之间的单词边界

您可以添加后视以确保您的号码前面有空格或字符串的开头,例如:

(?<=^|\s)6\.1(?![.\d])

或不以数字或点开头:

(?<![.\d])6\.1(?![.\d])

关于c# - 使用正则表达式查找单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22485232/

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