获取正则表达式的子串,该怎么解决

获取正则表达式的子串
本帖最后由 Aaron9979215 于 2015-05-15 09:41:06 编辑
一个正则表达式由两个小正则表达式组合而成,两个小正则表达式的首尾可能重复,现在希望在大正则表达式匹配的前提下,找出其中小正则表达式的子串,请问怎么做?
示例:
regExp1="a{1,2}n{0,5}"
regExp2="n{1,2}s{1,2}"
regExp=regExp1+regExp2
给定字符串“annnns”,在regExp匹配的前提下,想获得regExp1和regExp2的匹配结果,
请教各路大神应该怎么做?叩谢!
------解决思路----------------------
(a{1,2}n{0,5})  外面加个括号匹配组 $1  取括号里面
------解决思路----------------------

给两个子正则分别加上()这样就能用捕获组了
String regExp1="(a{1,2}n{0,5})";
String regExp2="(n{1,2}s{1,2})";
String regExp=regExp1+regExp2;
Matcher m=Pattern.compile(regExp).matcher("annnns");
while(m.find()){
System.out.println("regExp1:"+m.group(1));
System.out.println("regExp2:"+m.group(2));
}