子串,替换,在C#中查找下一个单词等

时间:2011-04-05 05:18:53

标签: .net string replace substring

这似乎很棘手,我偶然发现了最后一道障碍。我尝试了不同的逻辑,但是din非常有用。所以我不提供我的代码。但我会发布我需要的输出。这是一个逻辑问题,我猜我确定我确实需要知道超过.Substring().Replace()的方法。

输入是一个字符串。输出是输入字符串的改变形式。这就是我想要的。

输入:“快乐” 输出:“快乐”

输入:“他是骗子” 输出:“他是骗子”

输入:“他是我的” 输出:“他就是我......”

输入:“这是我的意思” 输出:“这是我的... ...”

有时我程序中字符串中的几个特定单词可以用空格分隔(鹦鹉,在上面的例子中作弊)。我想要发生的是

      .Replace("a ", "a...");

每当用空格分割的单词中有“a”时(p a r r o t,c h e t e d),我想要三个点跟随“a”。我能做到。什么使我的问题变得复杂“a”在英语中也常用来表示“一”(芒果,苹果等)。我不希望程序在这样的“a”之后添加三个点。以下是一个例子。

输入:“m a n g o is a fruit” 输出:“m a ... n g o is a fruit”

如何做到这一点?如果按照我的意愿给出输出,任何逻辑都会这样做。我希望我可以明确要求。如果我错过了什么请问。 感谢

2 个答案:

答案 0 :(得分:1)

这适用于您提到的案例......

string input = "once a c h e a t e r always a cheater";
string output = Regex.Replace(input, @"(?<=\b\w )a (?=\w\b)", "a...");
Console.WriteLine(output); // once a c h e a...t e r always a cheater

检查周围的“单词”是否为单个字母。

答案 1 :(得分:0)

我不确定,但你可以试试, 查找子字符串'a',获取下一个字符串,如果在发生thr之后是一个字符串,就像字符空格字符空间那样用a替换a ...