正则表达式

概述

正则表达式即正确规则的表达式,是一段用来校验和匹配指定数据的格式是否符合正确规则的字符串。正则表达式是一种独立的语法,Java和其他语言都会支持。

Pattern类

此类的作用是定义正则表达式的编译表示形式,指定为字符串的正则表达式必须首先被编译为此类的实例,所以被指定为正则表达是的字符串必须遵循一定的格式。

  • 正则表达式格式规范:
格式意义
"x"字符x
"[ ]"一定范围
"^ [ ]"范围外
" . "通配符,任意单个字符
" \ \ 丨 "
" \ \ d "任意数字,等同于 "[0-9]"
" \ \ w"任意数字字母下划线 "[0-9a-z_A-Z]"
" X * "0次或多次(非1次)
"X ?"0次或1次
"X +"1次或多次
"X { n }"正好n次
"X { n , }" "X { , n }"不少于n次 、 不多于n次
"X { m,n }"大于等于m次小于等于n次
  • 根据判断字符串格式
    调用pattern类中的matches方法:
boollean b = "string".matches("正则表达式")

返回布尔值则表示格式是否匹配。

正则表达式的分割功能

String类中存在一个方法:

public String[] split (String regex)

作用是将字符串中匹配指定regex正则表达式的部分删除,将字符串分割后转换为一个字符串数组并返回。

-例如:
将字符串"你11111爱22222我33333吗"分割,规则是正则表达式多个0-9:

public class Test {
    public static void main(String[] args) {
    String str="你11111爱22222我33333吗";
        String[] split = str.split("[0-9]+");
        System.out.println(Arrays.toString(split));
    }
}

在这里插入图片描述
这时我们可以通过遍历分割后的字符串数组,在运用StringBuilder得到一个新的字符串。

与正则相关的替换功能

String类中还存在一个方法:

public String replaceAll(String regex, String replacement) 

作用是将字符串中匹配指定正则表达式的部分替换成指定字符串。

  • 例如:
    将字符串"你11111爱22222我33333吗"转换成"你爱我吗"
public class Test {
    public static void main(String[] args) {
    String str="你11111爱22222我33333吗";
    String string = str.replaceAll("[0-9]+", "");
        System.out.println(string);

    }
}

在这里插入图片描述

Pattern和Matcher

  • Pattern (模式器) 用来封装一个正则表达式

可以通过模式器中的方法,进行数据封装:

  1. public static Pattern compile(String regex)
    将指定的正则表达式编译到具有给定标志的模式中。
  2. public Matcher matcher(CharSequence input)
    创建匹配指定字符串与此模式的匹配器。
  • Matcher (匹配器) 可以封装一个待匹配的数据

可以通过匹配器中的方法,进行匹配:

  1. public boolean find():查找待匹配数据中是否有与模式器匹配的元素。
  2. public String group():返回匹配的字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值