Java基础之正则表达式
来源:互联网 发布:民国报纸数据库 编辑:程序博客网 时间:2024/06/04 11:41
Java基础之正则表达式
正则表达式其实就是一种规则,本质上是一个字符串。在开发中,正则表达式常用来验证字符串和替换文本等操作。
- 正则表达式的语法规则
- 字符串中涉及正则表达式的常用方法
- Pattern和Matcher的结合使用
正则表达式的语法规则
[]:代表单个字符
字符类
[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&&[^bc]]:a到z除了b、c
[a-z&&[^m-p]]:a到z除了m到p
预定义字符类
.:任何一个字符
..:任何两个字符
\d:单个数字字符[0-9]
\D:单个非数字字符[^0-9]
\s:单个空白字符
\S:单个非空白字符
\w:单个单词字符[a-zA-Z_0-9]
\W:单个非单词字符
数量词
X代表字符
X?:X中的字符出现一次或一次也没有
X*:0次或多次(ps:包括一次)
X+:一次或多次
X{n}:恰好n次
X{n,}:至少n次
X{n,m}:至少n次,但不超过m次
运算符
(X):()代表组,每组都有一个编号,()中的数据作为一组数据出现。
- 例如:
- (abc)+ 表示 abc 作为一组出现至少一次
- “(.)\\1(.)\\2” 中\\1表示第一组又出现一次,\\2表示第二组又出现一次,所以这个正则中一共包含四个字符
- $1表示第一组中的内容,替换中可能用到
涉及正则表达式的常用方法
- public String[] split(String regex):通过正则表达式切割字符串
- public String replaceAll(String regex,String replacement):用replacement这个字符串替换所有匹配上regex规则的部分
- public boolean matches(String regex):判断字符串是否匹配给定的正则
Pattern和Matcher的结合使用
常用来实现获取功能
package com.example.test2;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 获取手机号码 * * @author MJ * */public class Demo_Pattern { public static void main(String[] args) { String s = "手机号a15012345678,手机号b18800000000,手机号c13387654321"; String regex = "1[34578]\\d{9}"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(s); // find()中内含指针,会一直向下寻找 while (matcher.find()) { // group()必须在find()之后调用 System.out.println(matcher.group()); } }}
运行结果如下:
150123456781880000000013387654321
阅读全文
0 0
- java基础之 正则表达式
- JAVA基础之正则表达式
- java基础之 正则表达式
- java基础之正则表达式
- Java基础之正则表达式
- java基础之正则表达式
- java基础之正则表达式
- Java基础之正则表达式
- Java与正则表达式之正则表达式基础
- 黑马程序员---java基础之正则表达式
- 黑马程序员----JAVA基础之正则表达式
- <<黑马程序员>>java基础之正则表达式
- JAVA基础系列之学习正则表达式
- 黑马程序员-java基础之正则表达式
- 黑马程序员 Java基础之正则表达式
- 黑马程序员 java基础之正则表达式
- 黑马程序员--java基础之正则表达式
- Java基础之反射,正则表达式
- win10尘埃4点击开始游戏自动关闭没反应|dirt4.exe进程消失的解决方法
- 牛顿迭代法 求 根
- Artificial Intelligence
- 进程和线程关系及区别
- 懒加载
- Java基础之正则表达式
- 错误信息:ids for this class must be manually assigned before calling save(): sample.db.Completedsample
- 理想路径,P173Uva1599
- nginx concat模块安装配置
- flask 中使用 装饰器
- Spring Cloud | 第二篇:服务消费者(Ribbon)
- html5 postMessage解决跨域、跨窗口消息传递
- java多线程 关于synchronized wait notify CountDownLatch CyclicBarrier Semaphore
- 邂逅ReactNative(二):使用Eslint规范项目代码