当前位置: 主页 > JAVA语言

java数字正则表达式-java正则表达式

发布时间:2023-02-08 16:10   浏览次数:次   作者:佚名

正则表达式(regular expression,简称regex)是用来描述匹配一组字符串的模式的字符串。

在String类中,有比较字符串的matches方法和equals方法,matches

该方法的功能比较强大,不仅可以匹配固定的字符串,还可以匹配一组相同模式的字符串

例如。 “Java 很有趣”。匹配(“Java.*”)真

“Java 很酷”。 匹配(“Java。*”)真

“Java 很强大”。 匹配(“Java。*”)真

上面语句中的“Java.*”是一个正则表达式。 他描述了一个字符串模式,它以“Java”开头,后跟 n 个字符串。 这里子字符串“.*”匹配任意字符的 0 个或多个。

正则表达式由文字字符和特殊符号组成。

常用的正则表达式:

java数字正则表达式_java正则表达式_java正则表达式 纯数字

java正则表达式 纯数字_java数字正则表达式_java正则表达式

(图片来源《Java语言程序设计与数据结构》附录)

注意:单词字符是任何字母、数字或下划线字符。 所以 \w 匹配任何类字符,包括下划线。 相当于 [^A-Aa-z0-9_]。

注意:表中的最后六个条目 *、+、? , {n}, {n, }, {n,m}称为量词,多用于决定量词前面的模式重复多少次。 例如:A*匹配0个或多个A,A+匹配1个或多个A,A? 匹配0个或1个A。A{3}正好匹配AAA,A{3, }至少匹配3个A,A{3, 6}匹配3到6个A。*等价于{0,},+是相当于 {1,}, ? 相当于{0.1}。

警告:不要在重复量词中使用空格。例如,A{3,6} 不能在逗号后写空格

一个{3,6}。

注意:括号可用于对模式进行分组。例如,(ab){3} 匹配 abababjava数字正则表达式,但 ab{3} 匹配

abbb。

例子

社会安全号码的格式是 xxx-xx-xxx,其中 x 是一位数字。 其正则表达式可以描述为[\\d]{3}-[\\d]{2}-[\\d]{4} 例如:"111-22-3333".matches("[\\ d ]{3}-[\\d]{2}-[\\d]{4}") 返回真。

思考:在这种情况下,可以使用正则表达式来管理用户登录系统时的账号/密码输入格式。

如果字符串与正则表达式匹配,则 String 类的 matches 方法返回 true。 String 类还包含

用于替换和拆分字符串的 repalceAll、replaceFirst 和 split 方法。 replaceAll 方法替换所有匹配的子字符串,replaceFirst 方法替换第一个匹配的子字符串。 例如:

System.out.println("Java Java Java".replaceAll("v\\w'', "wi")); 显示爪夷文爪夷文

System.out.println("Java Java Java".replaceFirst("v\\w'', "wi")); 显示爪夷文Java Java

有两个重载的 split 方法。 split(regex) 方法使用匹配的分隔符将字符串拆分为子字符串

string.例如下面的语句

字符串 [] 标记 = "Java1HTML2Perl"。 拆分(“\\d”);

将字符串“Java1HTML2Perl”拆分成Java、HTML和Perl分别存入tokens[0]、tokens[1]

在令牌[2]中。

在 split(regex, limit) 方法中,limit 参数决定了模式匹配的次数。 如果 limit 为 0,则该模式最多匹配 limit -1 次。

下面是一些例子: "Java1HTML2Perl".split("\\d", 0); 拆分为 Java、HTML、Perl

"Java1HTML2Perl" .split("\\d",1); 拆分为 Java1HTML2Perl

"Java1HTML2Perl" .split("\\d", 2); 拆分为 Java、HTML2Perl

"Java1HTML2Perl".split("\ld", 3); 拆分为 Java、HTML、Perl

注意:默认情况下,所有量词都是“贪婪”的。 这意味着它们将匹配尽可能多的次数。

例如,以下语句显示 JRvaa。 因为第一个匹配成功的是aaa。

系统。 出去 。 print1n("Jaaavaa" .replaceFirst("a+", "R"));

可以通过在其后添加问号 (?) 来更改量词的默认行为。量词变为“不情愿”或

“惰性”java数字正则表达式,意味着它会匹配尽可能少的次数。例如,下面的语句显示 JRaavaa 因为

第一个成功的匹配是 a。

System.out.println("Jaaavaa" .replaceFirst("a+?", "R"));