【问题标题】:Removing numbers from text using C#使用 C# 从文本中删除数字
【发布时间】:2012-03-13 18:26:51
【问题描述】:

我有一个要处理的文本文件,其中有一些数字。我只想在其中输入文字,仅此而已。我设法删除了标点符号,但是如何删除数字?我想要这个使用 C# 代码。

另外,我想删除长度大于 10 的单词。如何使用 Reg 表达式来做到这一点?

【问题讨论】:

  • 文件是什么样的(例如输入/输出???),你必须删除标点符号的代码在哪里?
  • 您能否在文件中提供示例数据?
  • 也许您可以展示一些代码,以便社区可以看到您的尝试?

标签: c# text


【解决方案1】:

您可以使用正则表达式来做到这一点:

string withNumbers = // string with numbers
string withoutNumbers = Regex.Replace(withNumbers, "[0-9]", "");

使用此正则表达式删除超过 10 个字符的单词:

[\w]{10, 100}

100 定义要匹配的最大长度。不知道有没有最小长度的量词...

【讨论】:

  • 我也会这样做。 Prachi - 如果您还没有 System.Text.RegularExpressions 的额外 using 指令,请记住它!
  • 另外,我想删除长度大于 10 的单词。我该如何使用 Reg 表达式?
【解决方案2】:

只有字母,没有别的(因为我看到你也想去掉标点符号)

Regex.IsMatch(input, @"^[a-zA-Z]+$");

【讨论】:

    【解决方案3】:

    你也可以使用string.Join:

    string s = "asdasdad34534t3sdf43534";
    s = string.Join(null, System.Text.RegularExpressions.Regex.Split(s, "[\\d]"));
    

    【讨论】:

      【解决方案4】:

      Regex.Replace 方法应该可以解决问题。

      // regex to match any digit
      var regex = new Regex("\d");                     
      // replace all matches in input with empty string
      var output = regex.Replace(input, String.Empty);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多