正则表达常用的方法
2013-12-04 09:57
316 查看
为了找到符合匹配的子字符串,一定要先用find()方法,然后再用group()方法才能找到符合
匹配规则的子字符串,否则直接使用group()方法会报错,不能找到符合的结果
匹配规则的子字符串,否则直接使用group()方法会报错,不能找到符合的结果
package hb.pattern; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.junit.Before; import org.junit.Test; public class PatternDemo { private String reg=""; private String target=""; private String source=""; @Before public void init(){ this.reg="aa*b"; this.target="变量"; this.source="aaaaaaaabbbbbaaaaab"; } /** * 使用初始化的数据进行正则表达式匹配 */ @Test public void stringPattern(){ Pattern p = Pattern.compile(reg); Matcher m = p.matcher(source); m.find(); String temp = m.group(); String result = this.source.replace(temp, this.target); System.out.println(result); } /** * 判断字符串中是否存在符合正则表达式规则的子字符串 */ @Test public void esay(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbb"); boolean b = m.matches(); System.out.println(b); } /** * 将匹配的第一个字符串替换掉 */ @Test public void repalceFirstTest(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); String result = m.replaceFirst(this.target); System.out.println(result); } /** * 将匹配的所有字符串全部替换掉 */ @Test public void repalceAllTest(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); String result = m.replaceAll(this.target); System.out.println(result); } /** * 找到一次符合正则表达式条件的就打印出结果,不再进行 */ @Test public void group(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); m.find(); String result = m.group(); System.out.println(result); } /** * 查找出所有符合条件的子字符串 */ @Test public void groupHigh(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); while(m.find()){ String result = m.group(); System.out.println(result); } } /** * 匹配不到符合条件的字符串 */ @Test public void groupException(){ try{ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("a"); m.find(); String result = m.group();//异常是在这句话中产生的 System.out.println(result); }catch(Exception e){ e.printStackTrace(); } } /** * 找到第一个符合条件的子字符串的起始位置和最后位置 */ @Test public void startAndEnd(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); m.find(); int start = m.start(); int end = m.end(); System.out.println("start : "+start); System.out.println("end : " + end); } /** * 找到第一个符合条件的子字符串的起始位置和最后位置 */ @Test public void allStartAndEnd(){ Pattern p = Pattern.compile("aa*b"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); while(m.find()){ int start = m.start(); int end = m.end(); System.out.println("start : "+start); System.out.println("end : " + end); } } /** * 找到符合第二个分组规则的第一个子字符串 */ @Test public void groups(){ Pattern p = Pattern.compile("(a)(aa*b)"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); m.find(); String result = m.group(2); System.out.println(result); } /** * 找到符合第二个分组规则的所有子字符串 */ @Test public void allGroups(){ Pattern p = Pattern.compile("(a)(aa*b)"); Matcher m = p.matcher("aaaaaaaabbbbbaaaaab"); while(m.find()){ String result = m.group(2); System.out.println(result); } } }
相关文章推荐
- grep 正则表达常用方法
- 正则表达中常用方法小结 test(),exec(),search(),match()区别及应用。
- 【iOS】常用正则表达式即使用方法
- 常用的正则表达试锦集
- Asp.net常用正则表达试
- js中正则表达式的常用方法和引用
- java学习——常用的正则表达
- javascript正则表达式的常用方法总结
- JavaScript中的String对象的常用方法、文本框对象的常用方法和事件、正则表达式的概念、正则表达式的几种构造方式、RegExp对象使用什么方法匹配正则表达式、
- javascript正则表达式的常用方法总结
- 一个常用的正则表达验证类 (转自“清清月儿”)
- 常用正则表达
- Python爬虫正则表达式常用符号和方法
- Java基础_正则表达式_Matcher常用方法
- javascript 常用正则表达式判断方法
- 正则表达式简介与常用表达
- javascript正则表达式的常用方法总结
- textbox只能输入数字或中文的常用正则表达式和验证方法
- 正则表达式常用方法
- C# Regex正则常用方法的使用