如何用C#中的空白替换字符串中的单词?

如何用C#中的空白替换字符串中的单词?,c#,string,replace,C#,String,Replace,有什么算法可以将一个单词从字符串变为空白? 我在这方面有问题 我的场景是将一个单词替换为空白,但是在另一个单词中也会发现一些单词,所以它也会替换该单词中的特定字符串 你好,你好 如果我将llo替换为。 输出: 你可以使用正则表达式 您可以使用正则表达式 我认为您应该在Regex.Replace和使用单词边界特殊字符(\b)来表示单词边界方面有点运气。不过,我不是专家。但一定要试试看 例如: string input = "llo Hello Ello llo lo o llo, and oh h

有什么算法可以将一个单词从字符串变为空白? 我在这方面有问题

我的场景是将一个单词替换为空白,但是在另一个单词中也会发现一些单词,所以它也会替换该单词中的特定字符串

你好,你好

如果我将llo替换为

输出:
你可以使用正则表达式
您可以使用正则表达式

我认为您应该在
Regex.Replace
和使用单词边界特殊字符(
\b
)来表示单词边界方面有点运气。不过,我不是专家。但一定要试试看

例如:

string input = "llo Hello Ello llo lo o llo, and oh hello llo! Look, a yellow llo.";
string output = Regex.Replace(input, @"\bllo\b", "___");
Console.WriteLine(output);
输出:

___ Hello Ello ___ lo o ___, and oh hello ___! Look, a yellow ___.
我认为您应该在
Regex.Replace
和使用单词边界特殊字符(
\b
)来表示单词边界方面有一些运气。不过,我不是专家。但一定要试试看

例如:

string input = "llo Hello Ello llo lo o llo, and oh hello llo! Look, a yellow llo.";
string output = Regex.Replace(input, @"\bllo\b", "___");
Console.WriteLine(output);
输出:

___ Hello Ello ___ lo o ___, and oh hello ___! Look, a yellow ___.
我希望我正确地理解了你。使用Regex可以实现以下目标:

Regex myRegex = new Regex(@"(?<![a-z])[a-z](?![a-z])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Debug.WriteLine(myRegex.Replace("test-a-b-c-test", "!"));

Regex-myRegex=new Regex(@)(?我希望我正确理解了您的意思。使用Regex您可以实现以下目标:

Regex myRegex = new Regex(@"(?<![a-z])[a-z](?![a-z])", RegexOptions.Compiled | RegexOptions.IgnoreCase);
Debug.WriteLine(myRegex.Replace("test-a-b-c-test", "!"));


Regex myRegex=new Regex(@“?你希望输出是什么?输出应该是Hello Ello\uuuuuuo o你希望输出是什么?输出应该是Hello Ello\uuuuuo o o你永远不能做太多或足够的正则表达式。+1我的建议是不要使用正则表达式,非常简单。这个函数引入了一个合理的、可扩展的概念(并非完美无缺,已批准)向OP提供足够的洞察力,使他们能够实现所需目标,而不必使用正则表达式引擎和/或忍受任何可能导致的特质。显然,鉴于我周围尊敬的同行,这只是我不太合格的意见。@失望先生:事实上,我大体上同意你的看法正则表达式。对于使用其他工具轻松处理的轻量级任务,它们通常会被不适当地拖出。然而,我对thecoop答案的评论表明,它遗漏了一些不太常见的情况,而正则表达式使用单词边界很容易解决这些问题。在我看来,这是一种相当罕见的情况,在这种情况下,正则表达式解决方案它比另一种方法更简洁易读,它类似于公司的答案,加上许多额外的逻辑来检测变化。哇,激烈的战斗!!总之,这是你关心的问题,伙计们,我newb@Mr.失望:你能为这个案例提供不带正则表达式的解决方案吗?它真的有效,并且具有相当的优雅性?你永远也做不到我的建议是不要使用正则表达式,非常简单。thecoop引入了一个合理的、可扩展的概念(当然,它不是完美无缺的)向OP提供足够的洞察力,使他们能够实现所需目标,而不必使用正则表达式引擎和/或忍受任何可能导致的特质。显然,鉴于我周围尊敬的同行,这只是我不太合格的意见。@失望先生:事实上,我大体上同意你的看法正则表达式。对于使用其他工具轻松处理的轻量级任务,它们通常会被不适当地拖出。然而,我对thecoop答案的评论表明,它遗漏了一些不太常见的情况,而正则表达式使用单词边界很容易解决这些问题。在我看来,这是一种相当罕见的情况,在这种情况下,正则表达式解决方案它比另一种方法更简洁易读,它类似于公司的答案,加上许多额外的逻辑来检测变化。哇,激烈的战斗!!总之,这是你关心的问题,伙计们,我newb@Mr.失望:你能为这个案例提供一个不带正则表达式的解决方案吗?这个方案真的很有效并且很优雅吗?我还有另外一个场景rio,将有一个列表框,其中在字符串中找到的列表中的所有单词都将变为空。我的代码处于循环中,我不断递增,直到它达到列表的总计数,但它不执行任何操作:preview.Text=Regex.Replace(question.Text,@“\b”+chosenwordlist.Items[i].ToString()+“\b”,“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;@Joseph:您还需要逐字逐句地创建最后一个字符串(
@“\b”
)。@Joseph:而且它看起来只会替换预览中列表框中的最后一个单词。文本字符串(因为您正在覆盖每次迭代时所做的操作)。您可能需要设置
preview.Text=question.Text
,然后使用
preview.Text=Regex.Replace执行循环(preview.Text,
。@Dan:什么?我不明白抱歉,我是新的。哦,是的,对不起,我忘了。让最后一个字符串一字不差怎么样?我有另一个场景,在列表框中,在字符串中找到的列表中的所有单词都将变为空白。我的代码在循环中递增,直到到达列表的t为止总计数,它什么也不做:preview.Text=Regex.Replace(question.Text,@“\b”+chosenwordlist.Items[i].ToString()+“\b”、“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(因为您正在覆盖您在每次迭代中所做的操作)。可能您想要的是设置
preview.Text=question.Text
,然后使用
preview.Text=Regex.Replace(preview.Text,
)执行循环。@Dan:什么?我不明白对不起,我是新的。哦,是的,对不起,我忘了。如何逐字创建最后一个字符串?