首页 > 解决方案 > 是否可以使用正则表达式从整个字符串中删除每个出现的字符及其后的一个字符?

问题描述

是否可以从整个字符串中删除每个出现的字符 + 一个字符?

这是一个实现我描述的代码,但相当大:

private static string FilterText(string text){
string filteredText = text;

while (true)
{
    int comaIndex = filteredText.IndexOf('.');

    if (comaIndex == -1)
    {
        break;
    }
    else if (comaIndex > 1)
    {
        filteredText = filteredText.Substring(0, comaIndex) + filteredText.Substring(comaIndex + 2);
    }
    else if (comaIndex == 1)
    {
        filteredText = filteredText[0] + filteredText.Substring(comaIndex + 2);
    }
    else
    {
        filteredText = filteredText.Substring(comaIndex + 2);
    }
}

return filteredText;
}

此代码将例如输入.Otest.1 .2.,string.w..test string

使用正则表达式是否可以达到相同的结果?

标签: c#regex

解决方案


你想用

var output = Regex.Replace(text, @"\..", RegexOptions.Singleline);

请参阅.NET 正则表达式演示详情

  • \.- 匹配一个点
  • .RegexOptions.Singleline- 由于使用的选项,匹配任何字符,包括换行字符。

推荐阅读