正则表达式
概念
定义: 符合一定规则的表达式
作用: 用于专门操作字符串
特点: 用于一些特定的符号表示代码的操作, 这样就简化了长篇的程序代码
好处: 可以简化对字符串的复杂操作
弊端: 符号定义越多, 正则越长, 阅读性越差
关键类
String
Pattern: 正则类对象
Matcher: 通过解释 Pattern 对 character sequence 执行匹配操作的引擎类.(匹配器)
具体操作功能
匹配: 返回是否与规则匹配的布尔值
- 1 String:
- boolean string.matches(String regex)
- 2 Pattern + Matcher:
- Pattern pattern.compile(String regex)
- Matcher pattern.matcher(String regex)
- boolean matcher.matches()
- 3 Pattern
- boolean b = Pattern.matches(String regex, String string)
切割: 返回符合规则以外的字符串
- String:String[] split(String regex)
- String:String[] split(String regex, int limit)
> 为了让规则的结果被重用, 可以让规则封装成一个组, 用 () 完成. 组的出现都有编号:
从 1 开始想要使用已有的组可以通过格式:\ + 组序号
Eg: 以叠词作为分隔符号, 切隔字符串:(.)\1+
Eg: (X(Y(Z)))(M)
组号: 1 2 3 4
替换: 返回被规则替换的字符串
- 1 String:String replaceAll(String regex, String replacement):regex-\n
- 2 String:String replaceFirst(String regex, String replacement):replacement-$n
- 3 Pattern + Matcher:
- Pattern pattern.compile(String regex)
- Matcher pattern.matcher(String regex)
- -------------------------------------
- String matcher.quoteReplacement(String s)
- String matcher.replaceAll(String replacement)
- String replaceFirst(String replacement)
获取: 将字符串中的规则的子串取出
将正则表达式封装成对象; 让正则表达式和要操作的字符串相关联; 关联后, 获取正则匹配引擎; 通过引擎对符合规则的子串进行操作, 如: 取出
- 1 //step1: 将规则封装成对象
- Pattern pattern = Pattern.compile(regex);
- //step2: 让正则对象和要提取的字符串相关联, 获取匹配 (器) 引擎对象
- Matcher matcher = pattern.matcher(string);
- while(matcher.find()) {// 不断地利用正则引擎查找符合正则表达式的对象, 找到: true; 没有找到: false
- System.out.println("start:" + matcher.start() + "word:" + matcher.group() + "end:" + matcher.end());// 返回当前查找到的一个子串, 并返回其单词的开始 start()与结束区间 end()
- }
参考文献
[黑马程序员_毕向东_Java 基础视频教程第 25 天](http://www.huahuionline.com/MainCtrl?page=ShowLessonDetailPage&lesson_id=56c1838945ceb61ab5246f3d&cNo=1)
来源: http://www.bubuko.com/infodetail-2580304.html