Java正则表达式

一、正则表达式概念

正则表达式(Regular Expression),又称规则表达式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

正则表达式的灵活性、逻辑性和功能性非常强,可以迅速地用极简单的方式达到字符串的复杂控制。

二、正则表达式的字符

正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。

Java正则表达式_第1张图片

Java正则表达式_第2张图片

Java正则表达式_第3张图片

Java正则表达式_第4张图片

三、正则表达式用途

1、匹配字符串

 以String类中的matches方法为例。乍一看,matches方法和equals方法很像。比如:

Java正则表达式_第5张图片

 这两条语句返回值:

Java正则表达式_第6张图片

但是matches方法的功能更强大。它不仅可以匹配一个固定的字符串,还可以匹配符合一个模式的字符串集。比如:

Java正则表达式_第7张图片

上面这些语句的结果都是true。其中"Java.*"是一个正则表达式。 它描述了一个字符串模式,以Java开始,后面跟0个或多个字符串。

2、替换和拆分字符串

String类的replaceAll,replaceFirst,split方法,用于替换和拆分字符串。其中replaceAll方法用于替换所有匹配的子字符串,replaceFirst方法用于替换第一个匹配的子字符串。比如:

Java正则表达式_第8张图片

结果为:

Java正则表达式_第9张图片

 split(regex)方法使用匹配的分隔符将一个字符串拆分成子字符串。而split(regex,limit)方法中的limit用来确定匹配次数,当limit<=0时,二者作用相同。

Java正则表达式_第10张图片

结果为:

Java正则表达式_第11张图片

你可能感兴趣的:(正则表达式,java)