黑马程序员-javase 正则表达式
来源:互联网 发布:mac怎么打开html文件 编辑:程序博客网 时间:2024/06/06 02:25
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
正则表达式
一、基本特点
正则表达式:符合一定规则的表达式。
作用:用于专门的操作字符串
特点:用于一些特定的符号来表示一些代码操作,这样就简化书写
学习一些特殊符号的使用
好处:可以简化对字符串的复杂
弊端:符号定义越多,正则越长,阅读性极差
正则表达式的符号在java.util.regex里
三 要注意的地方
1、正则表达式中\d 加在一块是一个整体。在String语句中会把出现\会把后面的转义,
正则表达式反斜杠是一对一 对出现的. 表示任意字符,\\. 表示.
2、为了让规则的结果可以被重用,可以将规则封装成一个组,用()完成,组的出现都有编号,
从1开始,0是原有的串,想要使用已有的组可以通过\n(n就是组的编号)) 来获取(在原有的字符串里)
如果不是在同一个字符串里要获取组里面的结果用$n;((())()) 看有几组,就看有几个左括号,
四、正则表达式具体功能
1 匹配,String mathches 方法,用规则匹配整个字符串,只要有移除不符合规则,返回false
实例1):/* * 写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。例如:18601088888、13912366666 */public class Test9 {public static void main(String[] args) throws IOException {/* * (\\d)\\1{4} 表示的是第一个为数字,后面4位与第一个括号里的内容相同 */for(int i=0;i<10;i++){BufferedReader br = new BufferedReader ( new InputStreamReader(System.in));String str = br.readLine();System.out.println("是否是题目要求的手机号:"+str.matches("1[3,4,5,8]\\d{4}(\\d)\\1{4}"));}}}
实例2)
2 切割: String split();
public class SplitDemo {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub String regex1 = "\\.";//一个逗号 String regex2 = " +";//一个或多个空格以上 String regex3 = "(.)\\1+";//出现2次或2次以上 print("120.0.0.1".split(regex1));//按逗号切 print("w h e r e".split(regex2));//按空格切 print("aaabbsdsss".split(regex3));//两次或两次以上的叠词切}public static void print(String arr[]){for(String str :arr){System.out.print(str);}System.out.println();return ;}}
3 替换 String replaceAll(String regex,String replacement)方法
实例:
public class Replace {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString regex1 = "\\d{5,}";//连续5个字符String regex2 = "(.)\\1+";//任意字符出现1一次以上的String s1 = "eajeifh121222awephffwef12312312312412312";String s2 = "aaaaabbbddadsf";System.out.println(s1.replaceAll(regex1, "*"));System.out.println(s2.replaceAll(regex2,"#"));}}
4)将子串中符合规则的取出
操作步骤:
1 将正则表达式封装成对象
2 将正则对象和要操作的字符串相关联
3 关联后,获取正则匹配引擎
4 通过引擎对符合规则的子串进行操作,比如取出
实例
public class Demo {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub String s = "hou tian yao dabiian le "; String regex = "\\b[a-z]+\\b"; //将规则封装成对象 Pattern pat = Pattern.compile(regex); //匹配器的对象 Matcher mat = pat.matcher(s); while(mat.find()){ System.out.println(mat.group()); //符合条件的子串在字符串中的索引 System.out.println(mat.start()+"...."+mat.end()); } }}
- 黑马程序员-javase 正则表达式
- 黑马程序员----JAVASE之正则表达式
- 黑马程序员-JAVASE入门(正则表达式)
- 黑马程序员——JAVASE-正则表达式
- 黑马程序员—javaSE—正则表达式
- 黑马程序员——javase基础--正则表达式
- 黑马程序员-正则表达式
- 黑马程序员 正则表达式
- 黑马程序员:正则表达式
- 黑马程序员---正则表达式
- 黑马程序员:正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员--正则表达式
- 黑马程序员 正则表达式
- 黑马程序员-正则表达式
- 黑马程序员:正则表达式
- 【POJ1987】Distance Statistics ==【POJ1741】 树分治
- 如何在iOS 8中使用CoreLocation定位
- Android总结之Activity启动模式
- Ubuntu技巧之清理系统中无用的软件包
- 在使用 Zxing 开源项目的时候 Activity 关闭
- 黑马程序员-javase 正则表达式
- 亿级用户下的新浪微博平台架构
- ccid驱动支持
- 类似于支付宝双击home键进入后台模糊效果-blurView
- 字符串的全排列
- ios-day12-04(ios开发中数据存储之NSKeyedArchiver归档(NSCoding)、普通对象如何归档、普通对象的子类如何归档)
- 100米下落
- 一种排序
- 原始套接字