1、范围的字符类:
[abc],范围中的一个,a或b或c
[^abc],取反,除了abc中的一个
[a-z],小写字母中的任何一个
[a-zA-Z],字母中的任何一个
[a-c[m-q]],并集,abcmnopq中的任何一个
[a-c && [b-f]],交集,bc中任何一个
[a-z && [bcd]],交集。bcd中的一个
2、预定义字符类
. :任何字符
\d :数字,[0-9]
\D :非数字,[^0-9]
\s :空白,空格 回车,换行 \t
\S :非空白,[^\s]
\w :单词字符[a-zA-Z0-9_]
\W :非单词字符,[^\w]
3、量词:指定匹配的次数
x?,零次或1次
x*,零次或多次
x+,一次或多次
x{n},n次
x{n,},至少n次
x{n,m},至少n次,不多于m次
|,或者
\\.,表示.
(),分组
(.)\\1+ : \1引用第一组的内容
$1 :外部引用第一组的内容
[abc],范围中的一个,a或b或c
[^abc],取反,除了abc中的一个
[a-z],小写字母中的任何一个
[a-zA-Z],字母中的任何一个
[a-c[m-q]],并集,abcmnopq中的任何一个
[a-c && [b-f]],交集,bc中任何一个
[a-z && [bcd]],交集。bcd中的一个
2、预定义字符类
. :任何字符
\d :数字,[0-9]
\D :非数字,[^0-9]
\s :空白,空格 回车,换行 \t
\S :非空白,[^\s]
\w :单词字符[a-zA-Z0-9_]
\W :非单词字符,[^\w]
3、量词:指定匹配的次数
x?,零次或1次
x*,零次或多次
x+,一次或多次
x{n},n次
x{n,},至少n次
x{n,m},至少n次,不多于m次
|,或者
\\.,表示.
(),分组
(.)\\1+ : \1引用第一组的内容
$1 :外部引用第一组的内容
\b:单词的边界
package day_160810_regex;
public class Demo01 {
public static void main(String[] args) {
//[abc],范围中的一个,a或b或c
String regex="[abc]";
String s="a";
System.out.println(s.matches(regex));//true
//举例:qq帐号:5-11位数字
regex="[1-9]\\d{4,10}";
s="22243";
System.out.println(s.matches(regex));//true
//电话号码的正则法则
regex="1[345789]\\d{9}";//表示第一位是1第二位在345789中选择一位剩下9位数字随意
s="18753360900";
System.out.println(s.matches(regex));//true
//身份证正则法则
regex="[1-9]\\d{16}[1-9X]";
s="21041155568841542X";
System.out.println(s.matches(regex));//true
//邮箱正则法则
regex="\\w+@\\w+\\.(com|net|org)";
s="545454was@163.com";
System.out.println(s.matches(regex));
}
}