【问题标题】:How to count specific string using regex如何使用正则表达式计算特定字符串
【发布时间】:2015-03-24 02:02:55
【问题描述】:

我是使用正则表达式的新手。

如何计算字符串中的特定字母?

var str = "FFFF000FFFCA";

我想要一个 4F303FCA 的输出。

我使用了Regex.Replace(str, @"(.)\1*", m => m.Value.Length + m.Groups[1].Value);,但输出为: 4F303F1C1A

感谢您的帮助。

【问题讨论】:

  • 那个输出对我来说很合适。

标签: c# regex winforms


【解决方案1】:

当只有一次出现时,您似乎不想输出任何内容。您可以使用“条件运算符”(又名“三元”)来内联选择:

string input = "FFFF000FFFCA";
string output = Regex.Replace(input, 
    @"(.)\1*", m => 1 < m.Value.Length ? 
           m.Value.Length.ToString() + m.Groups[1].Value : m.Groups[1].Value);

请注意,无法将 21 之类的内容解码回来(假设您正在尝试实现 Run-length encoding 的版本)。

【讨论】:

  • 我在你的帖子中加了一些水,所以它不是一个干巴巴的代码示例......随时恢复。
  • 谢谢。这就是我想要的。如果是具体的字母呢?只有字母“F”。输出为:4F0003FCA。非常感谢。
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多