首页 > 代码库 > 正则表达式
正则表达式
正则表达式:\.匹配字符串.
String regex = "\\s+(\\w+)\\s+(\\d+)\\s+.+";//分组匹配 String str = " 100000000001 13357725855 Aug 17 2014 7:55PM 综治e通组合-2014 "; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(str); System.out.println("length:" + str.length()); System.out.println(m.matches());// System.out.println(m.find()); System.out.println(m.group()); System.out.println("start:" + m.start()); System.out.println("end:" + m.end());
Matcher类:
matches()方法:尝试将整个区域与模式匹配(API)
即使用正则表达式匹配整个字符串。如果匹配成功可以
start()获取匹配到字符串的开始索引
end()方法获取匹配到字符串结束索引
group()方法获取匹配到的字符串
因为matches()方法是对整个字符串匹配,因此start索引为0,end索引为length-1,group则是整个字符串
find()方法:尝试查找与该模式匹配的输入序列的下一个子序列(API)
此方法从匹配器区域的开头开始,如果该方法的前一次调用成功了并且从那时开始匹配器没有被重置,则从以前匹配操作没有匹配的第一个字符开始。
find方法是从整个字符串索引0开始,查找与正则表达式匹配的子字符串。
总结:
group()方法返回上次匹配到的字符串,因此没有调用matches()方法或是find()方法会报异常。
上述实例:
匹配时字符串时,类似游标在字符串上移动。调用matches或是find后,如有匹配到的结果,游标移动到匹配到字符串的结尾
regex完全匹配字符串str,调用find()和matches()都是匹配检测,匹配完整字符串。
调用matches返回true,再调用find方法返回false,因为游标已经移动到字符串结尾
开发建议:
正则表达式完全匹配字符串
正则表达式使用分组
使用matches()方法检测
正则表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。