【问题标题】:C# Regex to remove single quotes between single quotesC#正则表达式删除单引号之间的单引号
【发布时间】:2012-08-17 20:48:11
【问题描述】:

大家好,我想使用 C# 正则表达式删除所有单引号单引号之间,示例

'这是一个'示例'文本'

请注意,单词 example 在单引号之间。我需要我的字符串看起来像:

'这是一个示例文本'

谢谢!

编辑:

它有一些变化!现在字符串看起来像:

begin:'这是一个'示例'文本'

请注意,字符串现在以一个单词开头,后跟 :,然后是第一个单引号 '

【问题讨论】:

  • 我们没有足够的信息。您正在解析的字符串 only 是否始终包含四个单引号?如果不是,则正则表达式不适合该问题。
  • 输入字符串是否总是以您要保留的单引号开头和结尾?
  • @TheZ 这正是我需要的,使用正则表达式或 C# 中的其他解决方案删除单引号之间的所有单引号。谢谢你!
  • @mbeckish 是的,输入总是以单引号开头和结尾,我想保留它们(开头和结尾的单引号)
  • 会不会有这样的事情:'你好'有'四'件物品'待售'。你想删除所有 4 个中间引号吗?还是只是最里面的2个?还是最外面的两个?

标签: c# regex


【解决方案1】:

您不需要使用正则表达式(无论如何它不太适合这种情况)。试试这个:

string oldString = "'this is an 'example' text'";
string newString = "'" + oldString.Replace("'","") + "'";

【讨论】:

    【解决方案2】:
    using System;
    using System.Text.RegularExpressions;
    
    public class Test
    {
      public static void Main()
      {
        string str = "begin:'this is an 'example' text'"; 
        str = Regex.Replace(str, "(?<=')(.*?)'(?=.*')", "$1");  
        Console.WriteLine(str);
      }
    }
    

    测试此代码here

    【讨论】:

      【解决方案3】:

      根据您的 cmets:

      1. 从字符串中删除所有单引号。
      2. 在字符串的开头和结尾添加单引号。

      【讨论】:

      • 希望文本中没有任何撇号 xD
      • @TheZ - OP 表示所有单引号。
      • 哦,相信我,我知道。对我来说似乎有风险(OP的假设)[顺便说一句,反对票不是我]
      • 为什么投反对票?这与 Snowsickle 和 Hassan 的答案完全相同。
      【解决方案4】:
      string yoursentence = "'this is an 'example' text'";
      yoursentence = "'" + yoursentence.Replace("'","")  + "'";
      

      【讨论】:

      • 注意整个字符串周围的引号 - example 不会包含在字符串中,您可能会遇到一些错误。看起来我们有相同的代码 - 赞成!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多