我需要一个执行以下操作的正则表达式
- 如果起始行中第一个单词的第一个字母为小写,则匹配。
- 从包含上述字母的单词开始,替换为空字符串,直到出现以大写开头的单词
这是我尝试过的:
string result = Regex.Replace(input,@"^[a-z]\s?[a-z0-9]\s?[^A-Z]","");
这是应该发生的:
样本输入 =“!jgf 地区。国家财富”
所需输出="国富论"
我应该怎么做才能改进/纠正?
你可以像下面这样:
string result = Regex.Replace(input,@"^[^A-Z]*","");
这种模式就足够了。
^[^A-Z]+
它将替换所有不是大写字母的字符
顺便说一句,在 C# 中没有 RegEx有一种更快的方法。
int index=str.indexOfAny(new char[] { 'A', 'B', ..., 'Z'})
if(index!=-1){
str = str.Substring(index);
}
" ([A-Z]+.*)"
使用组,Gruops[1] 是你想要的