黑马程序员_正则表达式
来源:互联网 发布:网络架构工程师 编辑:程序博客网 时间:2024/06/06 17:55
——- android培训、java培训、期待与您交流! ———-
一.正则表达式
1.定义:以某种方式来描述字符串。
2.作用:用于专门操作字符串。
3.特点:用一些特定的符号来表示一些代码操作。
4.好处:可以简化对字符串的复杂操作。
5.弊端:符号定义越多,正则越长,阅读性越差。
二.正则表达式的常用构造摘要
1.字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
2.预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
3.边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
4.Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
三.正则表达式常见功能:
1.匹配:
(1)应用场景-判断字符串是否正确
(2)案例:对手机号进行校验,常用手机段有13xxx,15xxx,18xxx
public static void checkTel() { String tel="17708914543"; String regex="[1][358]\\d{9}"; System.out.println(tel.matches(regex));//false }
2.切割:
(1)应用场景:按照自定的方式将字符串变成多个字符串
(2)案例:取出”zhangsan.lisi.wangwu”内的名字
public static void splitDemo(){ String str="zhangsan lisi wangwu"; String regex=" +"; String[] arr=str.split(regex); for(String s : arr) { System.out.println(s); }}
3.替换:
(1)应用场景:将已有的字符串变成另一个字符串
(2)案例:将给定字符串中连续出现的字母去掉,并保留一个连续出现的字母
public static void replaceAllDemo(){ String str="sdfkkwekkkfwqqsc"; String regex="(.)\\1+"; str=str.replaceAll(regex,"$1"); System.out.println(str);}
4.获取:
(1)应用场景:获取符合需求的字符串子串
(2)操作步骤:
将正则封装成对象—>将正则对象和要操作的字符串相关联,创建匹配器—>通过匹配器对符合规则的子串进行操作
(3)案例:取出给定字符串中由3个字母组成的单词
public static void getDemo(){ String str="ming tian jiu yao fang jia le,da jia."; String regex="\\b[a-z]{4}\\b"; //将正则表达式封装成对象 Pattern p=Pattern.compile(regex); //将正则对象与操作的字符串相关联,并创建匹配器 Matcher m=p.matcher(str); //尝试查找与该模式匹配的输入序列的下一个子序列 while(m.find()) { //返回由以前匹配操作所匹配的输入子序列 System.out.println(m.group()); }}
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_ 正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- 黑马程序员_正则表达式
- javaWeb之过滤器Filter
- db2 表空间、表空间容器、表(一)
- 并行计算之向量的计算
- Machine Learning week 1 quiz: Introduction
- maven项目pom中添加依赖,但是jar无法引入项目
- 黑马程序员_正则表达式
- 探索javascript基于原型的继承方式
- strcpy_s与strcpy的比较
- Log4j框架
- UVA 11729Commando War
- Machine Learning week 1 quiz: Linear Regression with One Variable
- 【Codeforces Round 328 (Div 2)A】【水题】PawnChess 棋子向上向下走
- 宏定义的妙用
- 一个超实用的图片加载和显示的小工具PictureEx!