c# - 从字符串中提取字符(正则表达式)

标签 c# regex

我想从下面的示例字符串中提取粗体字符。模式如下:

ChunkOfAlphabets_ChunkOfDigits_CharIWant_ChunkOfDigits_CharIDontCare

“ ABC12A1234D”

“ ABCD34B5678E”

“ EF34C9101F”

我想出了以下代码。似乎工作正常,但我想知道是否有更有效的方法,也许使用正则表达式?

    char extractString(string test)
    {
        bool isDigit = false;
        foreach(var c in test)
        {
            if (isDigit && !char.IsDigit(c))
                return c;

            isDigit = char.IsDigit(c);
        }

        return '0';
    }

最佳答案

如果您使用的是C#LINQ,则会更轻松,性能更高(正则表达式会涉及很多开销):

static char ExtractString(string test)
{
    return test.SkipWhile(c => Char.IsLetter(c))
               .SkipWhile(c => Char.IsDigit(c))
               .FirstOrDefault();

}

关于c# - 从字符串中提取字符(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36685918/

相关文章:

regex - 语言标签的正则表达式(由 BCP47 定义)

c# - 有关 Windows 窗体中选项卡的帮助

c# - 在 Azure 应用服务中哪里可以找到我的日志?

regex - grep正则表达式如何删除单引号

regex - 了解 sed 示例

python - 用Python编写正则表达式

regex - APO 和 FPO 的正则表达式导致问题 当城市是 APOAPKO 时,因为城市名称以 APO 开头

c# - Alea Gpu 运行时错误在 Rhino/GrassHopper 项目中找不到文件或依赖项

c# - Azure ASP.NET Core - 新文件出现错误 500

c# - 基类继承另一个基类?