正则表达式知识详解系列,通过代码示例来说明正则表达式知识
源代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094
示例功能:
1、单词两边都不设置边界
2、单词两边都设置边界
3、左边设置边界
4、右边设置边界
String str="the cat scattered his food catch mcat";
System.out.println("----不设置边界-----");
Pattern p=Pattern.compile("cat");
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group()+" 位置:["+m.start()+","+m.end()+"]");
}
// \b匹配单词边界,换句话说,\b是匹配一个位置,这个位置位于一个能够用来构成单词的字符
// (字母、数字和下划线,也就是\w相匹配的字符)和一个不能用来构成单词的字符(也就是与\W相匹配的字符)之间。
System.out.println("----两边都设置边界-----");
p=Pattern.compile("\\bcat\\b");
m=p.matcher(str);
while(m.find()){
System.out.println(m.group()+" 位置:["+m.start()+","+m.end()+"]");
}
System.out.println("----左边设置边界-----");
p=Pattern.compile("\\bcat");
m=p.matcher(str);
while(m.find()){
System.out.println(m.group()+" 位置:["+m.start()+","+m.end()+"]");
}
System.out.println("----右边设置边界-----");
p=Pattern.compile("cat\\b");
m=p.matcher(str);
while(m.find()){
System.out.println(m.group()+" 位置:["+m.start()+","+m.end()+"]");
}
运行结果:
----不设置边界-----
cat 位置:[4,7]
cat 位置:[9,12]
cat 位置:[27,30]
cat 位置:[34,37]
----两边都设置边界-----
cat 位置:[4,7]
----左边设置边界-----
cat 位置:[4,7]
cat 位置:[27,30]
----右边设置边界-----
cat 位置:[4,7]
cat 位置:[34,37]