gpt4 book ai didi

c# - 如何仅使用 2 replace 替换完全匹配的字符串

转载 作者:行者123 更新时间:2023-11-30 12:12:02 25 4
gpt4 key购买 nike

我正在尝试替换字符串,但由于匹配词很少,所以它同时替换了两个字符串。

Val1 = "CASE WHEN [" + isParent + "] = 0 THEN 'False' WHEN [" + isParent + "] = 1 THEN 'True' END ";
Val2 = "CASE WHEN [" + isChild + "] = 0 THEN 'False' WHEN [" + isChild + "] = 1 THEN 'True' END ";
val3 = str.Replace("IS_PARENT", Val1 ).Replace("IS_CHILD", val2);

在我的

str = "IS_PARENT, IS_CHILD_WITH_ROLE, IS_CHILD"; 

IS_CHILD 出现在两个地方,因此它替换了两个 IS_CHILD。

我只想替换确切的单词 IS_CHILD。

怎么做?

最佳答案

您可以使用 Regex.Replace

string newString = Regex.Replace(str, @"\bIS_CHILD\b", replacedText);

编辑:如果您想用与 IS_CHILD 相同的条件替换 IS_PARENT (仅替换整个单词)

string  newString = Regex.Replace(newString, @"\bIS_PARENT\b", "NEW TEXT");
newString = Regex.Replace(str, @"\bIS_CHILD\b", replacedText);

OR (这没有优化并且在答案中,因为它是替换单个单词的一种方法)

您可以根据空格拆分字符串,然后在替换完整的单词后使用string.Join 创建一个新的字符串。

string str = "IS_PARENT, IS_CHILD_WITH_ROLE, IS_CHILD";
string replacedText = "SomeThing";
string newString = string.Join(" ", str.Split()
.Select(r => r == "IS_CHILD" ? replacedText : r));

新字符串将是:

IS_PARENT, IS_CHILD_WITH_ROLE, SomeThing

关于c# - 如何仅使用 2 replace 替换完全匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14273033/

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