gpt4 book ai didi

c# - 用于替换字符串的正则表达式模式

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

我有以下输入:

Person 1kg

要获得预期的输出:

Person 1kEq

我正在使用以下模式:

string.Format(@"(?<!\S){0}(?!\S)", Regex.Escape("kg"));
Regex.Replace(inputSentence, Pattern, "kEq");

Regex.Replace 不会用 kEq 替换 kg

如果我将输入语句编辑为 Person 1 kg,替换就会发生,

有人可以帮我解决这个问题吗?

最佳答案

(?<!\S)kg 之前需要字符串的开头或空格搜索词。 (?!\S)前瞻要求字符串结尾或搜索词后的空格。这就是为什么如果您用空格分隔数字和度量单位(如 Person 1 kg),则会发生替换的原因。 .

在这种情况下,您似乎想要替换未包含其他字母 的匹配项。使用 (?<!\p{L})回顾开始和(?!\p{L})最后向前看:

string.Format(@"(?<!\p{{L}}){0}(?!\p{{L}})", Regex.Escape("kg"));

参见 regex demo .

关于c# - 用于替换字符串的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41692410/

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