A12b\Bn.Y(yEef,3
以上是我字符串中的内容,现在我要取出这个字符串中的前六个字母,也就是AbBnYy。请问使用正则我要怎么取出?
String str = "A12b\Bn.Y(yEef,3" Regex re = new Regex(@"[a-zA-Z]{1}"); MatchCollection mc = re.Matches(str);
int i=0; foreach (Match m in mc)
{
i++;if(i>=7) break; MessageBox.Show(m.Value);
}
我的思路是先提取出单个字母,再循环输出。
遇到此类问题,我都直接for选好判断字符就好了,不需要用正则表达式。
哈哈,老铁没毛病,我也是刚写完一个这种
String result = "";
String s = "A12b\\Bn.Y(yEef,3";
String rex = "[A-Za-z]?";
Pattern p = Pattern.compile(rex);
Matcher m = p.matcher(s);
while(result.length()<6) {
if(m.find()) {
System.out.print(m.group().toString());
result = result+m.group().toString();
}
}
额外问个问题,正则里面匹配的是不是只能匹配连续的,像这种不是连续性的是不是使用不了?*+
@西红柿里没有番茄: 应该是的,?*+都是指连续重复的。
@Shendu.cc: 谢谢啦,兄弟
@西红柿里没有番茄: 不客气