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

标签 c# regex

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

我有一个类似 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));

关于c# - 正则表达式匹配前两次出现的大写字母后跟几个小写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22868815/

相关文章:

c# - 嵌套循环的更快替代方案?

c# - 线程池 - 如何从工作线程调用主线程中的方法(带参数)

c# - 将文件从 ASP.NET Core Web API 发布到另一个 ASP.NET Core Web API

c# - 将 AM/PM 时间转换为 24 小时格式?

regex - Powershell 和正则表达式变量

c# - 使用 C# 的正则表达式查找日期

c# - .Net RegularExpressionValidator 与 Regex 类的匹配方式不同

javascript - 替换javascript中字符串中的字母

c# - 在 C# 中匹配换行符 (\n) 的正则表达式

regex - Bash Regex 如何检索值