Skip to main content
 首页 » 编程设计

c#之正则表达式匹配前两次出现的大写字母后跟几个小写字母

2024年01月26日27zhwl

我一直在查看此处的示例以了解如何进行类似的正则表达式匹配,但我无法让它适用于我的情况。

我有一个类似 ThisisMystringItsTooLong 的字符串,我想返回 ThiMys(前两次出现的大写字母后面跟着两个小写字母它) 但是,如果那里的字符串只是Thisismystring(只有一个大写字母)那么我只想要
返回 Thi。

我试过 ([A-Z]{1})([a-z]{2}){0,1} 只得到我的匹配项的第一次出现,如果有超过 2 个大写字母,但我不确定如何应用第二个条件。

请您参考如下方法:

你不能用正则表达式做到这一点,因为匹配总是输入的连续子串。您当然可以将多个匹配项组合成一个最终结果。

String.Join(String.Empty, Regex.Matches(input, "[A-Z][a-z]{2}") 
                               .Cast<Match>() 
                               .Take(2) 
                               .Select(match => match.Value));