一、正则表达式的概念
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
Java对于字符串更加敏感,与字符串处理相关的用法也很多。下面我们对正则表达式对字符串的匹配、替换和拆分的功能和语句进行记录。
匹配字符串
"Java".matches("Java");
"Java".equals("Java");
以上两个语句结果都是true。
然而,matches 方法更强大。它不仅可以匹配固定字符串,还可以匹配一个模式的字符串集。例如,以下语句结果都为 true。
"Java is fun".mathches("Java.*");
"Java is cool".mathches("Java.*");
"Java is powerful".mathches("Java.*");
正则表达式语法![](https://img-blog.csdnimg.cn/1a966ce8674e43458ae9c850dfa30436.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbGlnaHRzY3JlYW0wMg==,size_20,color_FFFFFF,t_70,g_se,x_16)
括符"(“和”)"在正則表达式中是特殊字符,用于对模式分组。为了在正則表式中表示字面值“(”或者“)”,必须使用 “\\(”和 “\\)”。
不能任意放空白符到正則表达式中。如[A-Z][a-Za-z]{l, 24}将报错。
字符串的替换和拆分
替换:Java的String类包含replaceAll和replaceFirst方法用于字符串的替换,返回值为替换后的字符串。
其中replaceAll方法替换所有匹配的子字符串;
replaceFirst方法替换第一个匹配的子字符串。
str. replaceAll(第一个参数,第二个参数) 第一个参数是由正则表达式构成的字符串(集),第二个参数是用于替换的字符串,将字符串str中所有符合 正则表达式构成的字符串集 的子字符串 替换成第二个参数的字符串,replaceFirst方法将字符串str中第一个符合 正则表达式构成的字符串(集) 的子字符串 替换成第二个参数的字符串。
拆分:Java的String类包括的split方法用于字符串的拆分,返回值为字符串数组。
split(regex,limit);
其中regex为正则表达式构成的字符串;limit-1为拆分进行多少次,若limit<=0,则等同于split(regex),即进行最多次。
replacefirst方法示例: