六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 46|回复: 0

正则分组和边界匹配

[复制链接]

升级  22.67%

78

主题

78

主题

78

主题

举人

Rank: 3Rank: 3

积分
268
 楼主| 发表于 2013-2-3 13:28:38 | 显示全部楼层 |阅读模式
测试匹配整个字符串,然后找出符合字符串当中匹配子正则表达式的子字符串
 
例如:匹配只有3到5个数字,只有两个
 
public class Fenzu {public static void main(String[] args) {Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");String s = "123aa-3434bb-234ccc-00";Matcher m = p.matcher(s);//分组查找是找出满足全部正则表达式的条件中之后再进行“局部”筛选while(m.find()){System.out.println(m.start());//打印出满足p模式中的分组1——只有数字System.out.println("符合3到5个数字 第一个分组:" + m.group(1));System.out.println("符合有两个字母的 第二个分组: " + m.group(2));System.out.println(m.end());}}} 
 
边界小Demo
 
public class boundaryTest {public static void main(String[] args) {//以h开头的字符out("help sir".matches("^h"));//以h开头的字符串out("hello sir".matches("^h.*"));//表示以ir结尾的字符串out("hello sir".matches(".*ir$"));//\b表示的是单词之间的空格out("hello sir".matches("^h[a-z]{1,3}o\\b.*"));out("hellosir".matches("^h[a-z]{1,3}o\\b.*"));}public static void out(Object o){System.out.println(o);}} 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表