正则表达式

it2022-05-05  208

概述

正则表达式即正确规则的表达式,是一段用来校验和匹配指定数据的格式是否符合正确规则的字符串。正则表达式是一种独立的语法,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 (模式器) 用来封装一个正则表达式

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

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

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

public boolean find():查找待匹配数据中是否有与模式器匹配的元素。public String group():返回匹配的字符串。

最新回复(0)