黑马程序员_正则表达式
2014-03-15 22:03
507 查看
------- android培训、java培训、期待与您交流!
----------
正则表达式:符合一定规则的表达式
作用:用于专门操作字符串。
特点:用一些特定的符号,来表示一些代码操作。这样就简化书写。
所以学习正则表达式,就是在学习特殊符号的使用。
好处:可以简化对字符串的复杂操作。
学习这个知道处理的方法就行,具体语法,可以参考API文档。
具体操作功能:
1、匹配:String类中的matches()方法。用规则匹配整个字符串。只要有一处不符合规则就匹配结束,返回false。
eg:
匹配QQ号:
2、切割:String类中的spilit()方法
按空格切割:
租的概念:从左向右看,每一个小括号括起来的,叫做一个组,编号从1开始。引用组的话用 ‘\’ + 数字标识
3、替换:String的replaceAll()方法
将所有数字,替换为*号:
4、获取:将字符串中符合规则的子串取出
操作步骤:
1、将正则表达式封装成对象。(Pattern:没有构造器,通过静态方法compile()方法进行正则表达式编译)
2、将正则对象与要操作的字符串相关联。Pattern对象的matcher()方法
3、关联后,获取正则匹配引擎。Matcher对象
4、通过引擎对符合规则的子串进行操作,比如取出。
查找三个字母的单词,eg:
注:\b为单词边界
------- 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培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员——java正则表达式
- 黑马程序员---------------JAVA基础--------正则表达式
- 黑马程序员——正则表达式
- 黑马程序员___StringBuilder&正则表达式 &Interger
- 黑马程序员_温习 正则表达式 (个人笔记)摘要(正则表达式-----网页爬虫)
- 黑马程序员_JAVA笔记25——正则表达式
- 黑马程序员——正则表达式
- 黑马程序员---正则表达式
- 黑马程序员--java基础--正则表达式
- 黑马程序员——java基础——正则表达式
- 黑马程序员------正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式总结
- 黑马程序员—正则表达式
- 黑马程序员16——正则表达式(未完待续)
- 黑马程序员——java第二十五天:正则表达式
- 黑马程序员——黑马学习日志之十八 正则表达式
- 黑马程序员_StringBuffer&a 4000 mp;正则表达式总结
- 黑马程序员——Java基础---正则表达式
- 黑马程序员-----正则表达式和网页爬虫