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
原创粉丝点击