黑马程序员_正则表达式
来源:互联网 发布:java获取每个月第一天 编辑:程序博客网 时间:2024/06/07 11:38
------- android培训、java培训、期待与您交流! ----------
正则表达式:符合一定规则的表达式
作用:用于专门操作字符串。
特点:用一些特定的符号,来表示一些代码操作。这样就简化书写。
所以学习正则表达式,就是在学习特殊符号的使用。
好处:可以简化对字符串的复杂操作。
学习这个知道处理的方法就行,具体语法,可以参考API文档。
具体操作功能:
1、匹配:String类中的matches()方法。用规则匹配整个字符串。只要有一处不符合规则就匹配结束,返回false。
eg:
匹配QQ号:
/** * 匹配QQ号 */private static void matchQQ() {String qq = "188888";//正则表达式,要求(1到9开头,后面紧跟4到14为数字)String regex = "[1-9][0-9]{4,14}";//这边是String的matches方法boolean flag = qq.matches(regex);System.out.println(flag);}匹配手机号:
/** * 匹配手机号段 13xxx 15xxx 18xxx */private static void matchTel() {String tel = "16550000000";//正则表达式,1开头、358可能出现在第二位、后面9位数字String regex = "[1][358]\\d{9}";//这边是String的matches方法boolean flag = tel.matches(regex);System.out.println(flag);}
2、切割:String类中的spilit()方法
按空格切割:
/** * 按空格切割 */private static void spilitBySpace() {//待切字符串String str = " zhangsan lisi wangwu ";//按空格切割String regex = "[ ]+";//trim方法,去除首尾的空白字符String[] arr = str.trim().split(regex);for(String s : arr) {System.out.println(s);}}按点切割:
/** * 按点切割 */private static void spilitBySpace() {//待切字符串String str = "zhangsan.lisi.wangwu";//按点切割String regex = "\\.";//trim方法,去除首尾的空白字符String[] arr = str.trim().split(regex);for(String s : arr) {System.out.println(s);}}按反斜线切割
/** * 按反斜线切割 */private static void spilitBySpace() {//待切字符串String str = "C:\\a\\b\\c\\a.txt";//按反斜线切割String regex = "\\\\";//trim方法,去除首尾的空白字符String[] arr = str.trim().split(regex);for(String s : arr) {System.out.println(s);}}按叠词切割
租的概念:从左向右看,每一个小括号括起来的,叫做一个组,编号从1开始。引用组的话用 ‘\’ + 数字标识
/** * 按叠词切割 */private static void spilitBySpace() {//待切字符串String str = "dsabddnjknddnkeenkkmew";//按空格切割String regex = "(.)\\1+";//trim方法,去除首尾的空白字符String[] arr = str.trim().split(regex);for(String s : arr) {System.out.println(s);}}
3、替换:String的replaceAll()方法
将所有数字,替换为*号:
private static void replaceAllTest() {//待切字符串String str = "aaa22222bbbbb22234343fewbbb";//匹配数字String regex = "[0-9]";//trim方法,去除首尾的空白字符String str2 = str.trim().replaceAll(regex, "*");System.out.println(str2);}将所有连续重复的元素合并
private static void replace() {//待切字符串String str = "aaa22222bbbbb22234343fewbbb";//匹配数字String regex = "(.)\\1+";//trim方法,去除首尾的空白字符String str2 = str.trim().replaceAll(regex, "$1");System.out.println(str2);}
4、获取:将字符串中符合规则的子串取出
操作步骤:
1、将正则表达式封装成对象。(Pattern:没有构造器,通过静态方法compile()方法进行正则表达式编译)
2、将正则对象与要操作的字符串相关联。Pattern对象的matcher()方法
3、关联后,获取正则匹配引擎。Matcher对象
4、通过引擎对符合规则的子串进行操作,比如取出。
查找三个字母的单词,eg:
注:\b为单词边界
private static void find() {String str = "ming tian jiu yao fang jia le";String regex = "\\b[a-z]{3}\\b";//通过静态方法compile()方法进行正则表达式编译Pattern pattern = Pattern.compile(regex);//让正则对象和药作用的字符串相关联,获得匹配引擎Matcher matcher = pattern.matcher(str);//尝试查找与该模式相关的下一个子序列while(matcher.find())System.out.println(matcher.group());}
------- android培训、java培训、期待与您交流! ----------
0 0
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_ 正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- Java Thread 总结
- 程序员练级之路
- 数据挖掘常用的方法(分类,回归、聚类、关联规则)
- 学习Android之第二个小程序(startActivityForResult与onActivityResult)
- 【nyist】Personal Contest.2 (第二次比赛)
- 黑马程序员_正则表达式
- java synchronized详解
- Xcode报错our build settings specify a provisioning profile with the UUID “XXXX”, however, no such prov
- CentOS 修改IP地址, DNS, 网关
- opencv2.2以上不支持CvvImage的解决办法
- Time
- Google Fonts Sass Mixin
- 《使用Python进行自然语言处理》学习笔记一
- container_of的含义及使用方法