Java基础(正则表达式)

基本语法

1.选择

|竖线符代表选择(即并集),具有最低优先级。例如"aaa|bbb"可以匹配aaa或bbb。

2.数量限定

某个字符后的数量限定符用来限定前面这个字符允许出现的个数。

最常见的数量限定符包括"+"、 "?"和 "*"(不加数量限定则代表出现一次且仅出现一次):

(1)+ 加号代表前面的字符必须至少出现一次。(1次、或多次)。

        例如, "goo+gle"可以匹配google、gooogle、goooogle等;

 (2)? 问号代表前面的字符最多只可以出现一次。(0次、或1次)。

        例如:"colou?r"可以匹配color或者colour;

 (3)* 星号代表前面的字符可以不出现,也可以出现一次或者多次。(0次、或1次、或多次)。

        例如, " 0*42 "可以匹配42、042、0042、00042等。

3.表达式规则

  (1)     匹配字符串的开始位置

(2)   $   匹配字符串的结束位置

案例:

String s1 = "111223abc";
String regex = "^[0-9]+abc$";
boolean b = s1.matches(regex);
System.out.println(b);

(3){n}  n是一个非负整数。匹配确定的n次

     示例:o{2}能匹配food,不能匹配Bob。

(4){n,}  n是一个非负整数。匹配确定的n次

     示例:【o{2,}】

         不能匹配 "Bob"中的 "o",但能匹配 "foooood"中的所有o。

        "o{1,}"等价于 "o+"

        "o{0,}"则等价于“o*"。

(5){n,m}  m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。

(6)x 代表字符x

       示例:匹配规则为 "a",那么需要匹配的字符串内容就是 "a"。

(7)[abc]  字符集合,匹配所包含的任意一个字符。

       示例:"[abc]",匹配的内容就是字符a,或者字符b,或字符c的一个

案例:匹配手机号

/匹配手机号
//长度11位,开头为1,第二个数字是3、7、5、8
String regex4="1[3758][0-9]{9}";
Scanner sc=new Scanner(System.in);
System.out.println("请输入手机号:");
String number=sc.next();
boolean result=number.matches(regex4);
if(result==true)
     System.out.println("手机号匹配!");
else
     System.out.println("手机号不匹配!");

(8)[^abc]   排除型字符集合,表示除了 ab c以外的任何字符

(9)[a-zA-Z]    匹配的是a z A Z,两头的字母包括在内

 (10)  [0-9]  匹配的是 09数字,两头的数字包括在内

 (11)  [a-zA-Z_0-9]  匹配的是字母或者数字或者下划线(即单词字符)

 (12) .(点)匹配除“\n"之外的任何单个字符。如果,就想使用 . 的话,使用匹配规则"\\."来实现

(13)\d    匹配一个数字字符。等价于[0-9]。

(14)\w   匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]"。

(15)\b    匹配一个单词边界,也就是指单词和空格间的位置。

          例如,“er\b"可以匹配“never"中的“er",但不能匹配“verb"中的“er"。

案例:匹配邮箱

String regex="[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]+)+";
System.out.println("[email protected]".matches(regex));
发布了75 篇原创文章 · 获赞 164 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_41679818/article/details/93332102