黑马程序员技术交流社区
标题:
正则表式分组中的匹配问题,下面的代码看不懂??
[打印本页]
作者:
付鑫鑫
时间:
2013-4-23 23:58
标题:
正则表式分组中的匹配问题,下面的代码看不懂??
String regex = "(.)\\1(.)\\2";
这个是怎么的匹配,
作者:
何俊森
时间:
2013-4-25 23:20
本帖最后由 何俊森 于 2013-4-25 23:29 编辑
查api
Back 引用
\n 任何匹配的 nth 捕获组,意思是相应第n组的引用,(12)\1(ab)\2就表示1212abab;
(.)表示匹配任意单个字符。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String regex = "(.)\\1(.)\\2";
String str = "**aa";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
if(m.find()){
int gc = m.groupCount();
for(int i=0; i<=gc; i++){
System.out.println(m.group(i));
}
}
}
}
group(0)是匹配整个表达式的字符串的那部分**aa
group(1)是第1组(.)匹配的那个字符: *, \1就表示*
group(2)是第2组(.)匹配的那个字符:a, \2就表示a
复制代码
作者:
xiewen
时间:
2013-4-26 00:54
"\"转义符,所以配备“.\1.\2”
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2