因为正则表达式内容很多,我不能补全
\b 是正则表达式规定的一个特殊代码(某些人叫它元字符,meta character),代表着
单词的开头或结尾,也就是单词的分界处。
“.”是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,不过它代表的不是
字符,也不是位置,而是数量——它指定*前边的内容可以连续重复出现任意次以使整个表达式
得到匹配。 因此, “ .*” 连在一起就意味着任意数量的不包含换行符
这里的\d 是一个新的元字符,匹配任意的数字(0,或 1,或 2,或……)。-不是元字符,
只匹配它本身——连字号。
在 Java 中的 String 类中有好几个方法都跟正则表达式有关,最典型的就是
public boolean matches(String regex)
告知此字符是否匹配给定的正则表达式。
使用这个方法来测试和运行上面学到的正则表达式,示例如下:
public class Test {
public static void main(String[] args) {
String str = "010-62972039";
System.out.println("str是一个正确的电话号码?答案是:" +
str.matches("0\\d{2}-\\d{8}"));
}
}
运行结果:str 是一个正确的电话号码?答案是:true
注意:由于在 Java 里面“\”需要转义,应该变成“\\”。
在 Java 中,有专门进行正则表达式的类,在 java.util.regex 包里面。
. 匹配除换行符以外的任意字符
\w 匹配字符或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\b 匹配字符串的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
例 1:\d+
匹配 1 个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可
能是 0 次),而+则匹配重复 1 次或更多次
例 3:\b\w{6}\b
匹配刚好 6 个字母/数字的单词。
例 4:^\d{5,12}$
匹配必须为 5 位到 12 位数字的字符串
* 重复零次或多次
+ 重复一次或多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n次到m次
13\d{9} 匹配 13 后面跟 9 个数字(中国的手机号)
常见正则表达式
(1)检测是否 Email 地址
^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|
(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$
(2)判断输入的字符串只包含汉字
^[\u4e00-\u9fa5]+$
(4)判断输入的字符串是否是一个合法的手机号,这个不完全,只是 13 开头的
^13\\d{9}$
(5)判断输入的字符串只包含数字,可以匹配整数和浮点数
^-?\\d+$|^(-?\\d+)(\\.\\d+)?$
|