gpt4 book ai didi

c# - 使用 Regex.Replace() 替换字符串中的文本

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

我想使用 Regex.Replace() 遍历包含由“//”分隔的单词的字符串,以检查是否有任何单词与已传递给该方法的字符串值匹配。如果文本字符串与 wordList 中的一个单词匹配,则替换它并返回“匹配”,如果它不匹配任何单词,则返回传递给该方法的原始单词并且不替换它。

这是我目前的代码:

    public void CheckText(string text)
{
//Check text entered by user

string wordList = "word1//word2//word3 etc...";
string replaceString = "matched";

if (!string.IsNullOrEmpty(wordList))
{
//How do I implement this part?
return Regex.Replace(text, wordList, replaceString);
}
}

有人可以帮我解决这个问题吗?任何帮助/意见将不胜感激!

更新:(从更新粘贴到由 OP 作为答案发布的问题)

感谢您的回复。我可能没有正确解释这个问题。如果它与 wordList 中的字符串匹配,我希望该方法替换它传递的文本字符串。例如,将'word1'传递给该方法,该方法然后检查'word1'是否在wordList中,如果是,则将传递给该方法的原始字符串替换为'matched',然后返回' matched',如果没有匹配到wordList中的任何一个词,则返回原始字符串,不替换它。

最佳答案

为此您不需要 RegEx - String.Replace会工作得很好——它也更具可读性:

public void CheckText(string text)
{
string wordList = "word1//word2//word3 etc...";
string replaceString = "matched";

return wordList.Replace(text, replaceString );
}

更新:(根据更新的问题)

如果你只是想检查传入的字符串是否出现在单词列表中,你可以简单地使用String.IndexOf (如果不存在,将返回 -1)。但是您没有为该函数指定返回类型,所以我不知道您希望如何报告结果:

public string CheckText(string text)
{
string wordList = "word1//word2//word3 etc...";
if(wordList.IndexOf(text) > -1)
return "matched";

return text;
}

如果传入的文本参数包含在 wordList 中,则上面的函数将返回“匹配”,否则返回文本参数本身。

关于c# - 使用 Regex.Replace() 替换字符串中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911927/

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