首页 新闻 会员 周边 捐助

正则:获取字符串中符合条件的前六位

0
悬赏园豆:5 [已解决问题] 解决于 2018-04-04 15:41

A12b\Bn.Y(yEef,3

以上是我字符串中的内容,现在我要取出这个字符串中的前六个字母,也就是AbBnYy。请问使用正则我要怎么取出?

西红柿里没有番茄的主页 西红柿里没有番茄 | 小虾三级 | 园豆:645
提问于:2018-04-04 14:58
< >
分享
最佳答案
0
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选好判断字符就好了,不需要用正则表达式。

收获园豆:5
Shendu.CC | 老鸟四级 |园豆:2138 | 2018-04-04 15:14

哈哈,老铁没毛病,我也是刚写完一个这种

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();

}

}

 

 

额外问个问题,正则里面匹配的是不是只能匹配连续的,像这种不是连续性的是不是使用不了?*+

 

 

西红柿里没有番茄 | 园豆:645 (小虾三级) | 2018-04-04 15:22

@西红柿里没有番茄: 应该是的,?*+都是指连续重复的。

Shendu.CC | 园豆:2138 (老鸟四级) | 2018-04-04 15:29

@Shendu.cc: 谢谢啦,兄弟

西红柿里没有番茄 | 园豆:645 (小虾三级) | 2018-04-04 15:42

@西红柿里没有番茄: 不客气

Shendu.CC | 园豆:2138 (老鸟四级) | 2018-04-04 15:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册