删除单引号

时间:2016-04-04 09:09:35

标签: c# regex

我想从字符串中删除单引号,如下例所示。

  

输入:'我是'微软'显影剂'

     

OutPut:我是微软开发人员

  

输入:'让我们玩一个大的'游戏'

     

OutPut:让我们玩一场大游戏

  

输入:'詹姆斯'计算机'

     

OutPut:詹姆斯'计算机

请提出实现目标的最佳方法。

感谢。

3 个答案:

答案 0 :(得分:4)

你去吧

string Input1 = "'I am a 'microsoft' developer'";
string Input2 = "'Let's play a 'big' Game'";

string Result1 = string.Join(" ", Input1.Split(' ').Select(x => x.Trim('\'')));
string Result2 = string.Join(" ", Input2.Split(' ').Select(x => x.Trim('\'')));

我删除位于单词开头或结尾的每个'

<强>更新

正如Oliver Nicholls指出的那样,应该有一些像James'这样的特殊情况。在这种情况下,应保留'。例如:

string Input3 = "'Let's play James' Game'";
string Result3 = string.Join(" ", Input3.Split(' ').Select(x => !x.EndsWith("s'")?x.Trim('\''): x.TrimStart('\'')));

答案 1 :(得分:0)

试试这个

string origin = "Let's play a 'big' Game";
            string replaced = origin.Replace(" \'", " ").Replace("\' ", " ");

答案 2 :(得分:0)

只需删除不在单词内的引号:

string t = "'Let's play a 'big' Game'";
string[] words = t.Split(' ');
string res = "";
for (int i = 0; i < words.Length; i++)
{
    res += words[i].Trim('\'') + "";

    if ((words.Length - 1) > i)
    {
        res += " ";
    }
}
Console.WriteLine(res);