如何使用正则表达式拆分两个粘附单词,一个全部大写,另一个以大写字母开头



下面是一些输入示例:

  • UIHint ==> UI + 提示

  • RSSReader ==> RSS + Reader

  • IP地址==>IP +地址

我做了这样的东西

([A-Z]+)(

([A-Z])([a-z]+))

static void Main(string[] args)
    {
        string input = "IPAddress";
        var result = Regex.Matches(input, "([A-Z]+)(([A-Z])([a-z]+))");
        foreach (Match match in result)
        {
            foreach (var item in match.Groups)
            {
                Console.WriteLine(item);
            }
        }
    }

这是输出:

IPAddress
IP
Address
A
ddress

但是通过使用它,比赛组还包含"A"和"dress",用于"IPAddress",例如我不想要它们。

我只想要匹配组中的主输入(IPAddress),"地址"和"IP"。

那么我应该如何更改正则表达式模式呢?

怎么样

([A-Z]+)([A-Z]w*)

在这里查看 regex101.

它将为您提供两个捕获组中的两个部分。

编辑:修复了Adress的错误匹配。

相关内容

最新更新