正式表达式

本文详细介绍了正则表达式的基本概念,包括元字符、限定符的使用,并讲解了String类中的matches()、replaceAll()和split()方法在处理正则表达式时的应用。适合需要学习或查阅正则表达式相关知识的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

正则表达式是一些含有特殊意义字符的字符串,而这些特殊意义的字符被称为正则表达式中的元字符。
PS: 本文章由于记录一些关于正则表达式的常用元字符、限定符和相关的类、方法等,欢迎有需要的同学随时进行查阅收藏 : )

一、String类中的matches(String regex)方法

/**
 * 用于判断当前字符串对象是否和参数regex指定的正则表达式匹配
 * /
public boolean matches(String regex) {
	return Pattern.matches(regex, this);
}

/**
 * 示例
 * /
public static void main(String args[]) {
	// 表示匹配英文字母(包括大写和小写), 并且英文字母出现的次数为1次或多次
	String regex = "[a-zA-Z]+";
	Scanner scanner = new Scanner(System.in);
	String str = scanner.nextLine();
	if(str.matches(regex)) {
		System.out.println(str + "中的字符都是英文字母");
	}
}

二、元字符

在正则表达式中可以用方括号括起来若干个字符来表示一个元字符,该元字符代表方括号中的任何一个字符。例如:regex = “[123]ABC”,那么"1ABC"、"2ABC"和"3ABC"都是和正则表达式regex匹配的字符串。注:"^"表示除了这些字符之外,类似于取反的操作。

元字符在正则表达式中的写法意义
..代表任何一个字符
\d\\d代表0至9的任何一个数字
\D\\D代表任何一个非数字字符
\s\\s代表空格类字符,’\t’,’\n’,’\x0B’,’\f’,’\r’
\S\\S代表非空格类字符
\w\\w代表可用于标识符的字符(不包括美元符号)
\W\\W代表不能用于标识符的字符

注:由于“.”代表任何一个字符,所以在正则表达式中如果想使用普通意义的点符号,必须使用[.]或用\56表示普通意义的点字符。

三、限定符

带限定修饰符的模式意义
X?X出现0次或1次
X*X出现0次或多次
X+X出现1次或多次
X{n}X恰好出现n次
X{n,}X至少出现n次
X{n, m}X出现n次至m次
XYX的后缀是Y
XY

四、String类中的replaceAll(String regex, String replacement)

/**
 * 本方法返回一个字符串,该字符串是将当前字符串中所有和参数regex指定的正则表达式匹配的子字符串用参数replacement指定的字符串替换后的字符串。
 * /
public String replaceAll(String regex, String replacement) {
	return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}

/**
 * 示例
 * /
String s = "456abc9561def853gh".replaceAll("[a-zA-Z]+", "你好");
// 字符串s的值为: 456你好956你好853你好

五、String类中的split(String regex)

/**
 * 本方法使用参数指定的正则表达式regex作为分隔标记分解出其中的单词,并将分解出的单词存放在字符串数组中。
 * /
public String[] split(String regex) {
	return split(regex, 0);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值