Java 常用API 02 正则表达式

1 正则表达式(Regular Expression)

1)介绍

正则表达式是一个字符串,使用单个字符串来描述,用来定义匹配规则。匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。

2)匹配规则

链接:详细语法规则

// 匹配a或b或c
[abc]
// 匹配除了abc以外的任意字符
[^abc]
// 匹配一个大写或者小写字母
[a-zA-Z]
// 匹配0-9之间的一个数字
[0-9] 或 \d
// 匹配一个字母或数字或下划线
[a-zA-Z_0-9] 或 \w
// 匹配一个任意字符,\\.表示匹配.符号
.
// 代表的是行的开头 
^
// 代表的是行的结尾
$
// 表示以a或b或c开头,以一个数字结尾
^[abc][0-9]$
// 代表的是单词边界
\b
\b[abc]\b,表示字母ab或c两边需要的是非单词字符\w
// x出现一次或零次
x?
// x出现零次或多次
x*
// x出现一次或多次
x+
// x出现恰好n次
x{n}
// x出现至少n次
x{n,}
// x出现至少n次,至多m次
x{n,m}

示例:

规则:[0-9]{6,12}
意义:长度为6到12的数字。

规则:1[34578][0-9]{9}
意义:11位手机号码,第一位为1,第二位为34578中的一个,后面9位为0-9之间的任意数字。

规则:a*b
意义:在0个或多个a之后有个b,b必须是最后一个字符。

需求:匹配正确的数字
实现:
    匹配正整数:\\d+
    匹配正小数:\\d+\\.\\d+
    匹配负整数:-\\d+
    匹配负小数:-\\d+\\.\\d+
    匹配保留两位小数的正数:\\d+\\.\\d+{2}
    匹配保留1-3位小数的正数:\\d+\\.\\d+{1,3}

需求:匹配合法的邮箱
实现:[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]+)+
    或 \\w+@\\w+(\\.\\w+)+
3)常用方法
  • 判断字符串是否匹配给定的规则
// 校验qq号码
String qqString = "123456789";
String regex = "[1-9][0-9]{4,14}";
boolean flag = qqString.matches(regex); // true
// 校验手机号码
String phone = "13812337788";
String regex1 = "1[34578][0-9]{9}";
boolean flag1 = phone.matches(regex1); // true
  • 给定规则,拆分字符串
// 分割字符串中的数字
String ss = "2018-7-12";
String regex2 = "-";
String[] result = ss.split(regex2);
  • 根据规则,替换字符串
// 替换字符串,将数字替换成*
String sss = "Hello123World456";
String regex3 = "[0-9]";
String result3 = sss.replaceAll(regex3, "*"); // Hello***World***

猜你喜欢

转载自blog.csdn.net/lihaogn/article/details/81010239