正则表达式

简介

* 正则表达式
* 正则表达式用于描述一个字符串的格式
* 主要任务:验证一个实际字符串内容是否符合格式要求(有效性不验证)
* 比如:手机号、邮箱格式的验证
* 基本语法(不止Java有,因此只学习基本语法看懂就行)

具体用法及案例 

1、[]:用来表示1个字符。[]中可以指定该字符的内容范围
*
*  例如:
*  [abc]:该字符要么是a要么是b要么是c
*  [a-z]:"-"表示范围,a-z:表示abcdefg.....xyz  任意小写字母
*  [a-zA-Z]:任意一个字母
*  [0-9]:表示任意一个数字
*
*  2:预定义字符
*  \d:表示一个数字,等价与[0-9]
*  \s:表示一个空白字符。空格,缩进,回车(占位但是看不见的字符)
*  \w:表示一个单词字符(数字,字符,下划线) 等价于[a-zA-Z0-9_]
*  .:表示任意一个字符
*
*
*  取反:
*  \D:表示不是数字
*  \S:表示不是空白字符
*  \W:表示不是单词字符
*
*  量词:
*  +:表示它前面的内容出现(1-人一次,即:一次以上)
*  *:表示它前面的内容出现任意次(0-多次)
*  {n}:表示它前面的内容出现n次。n是一个数字
*  {n,m}:表示它前面的内容出现n-m次。(>=n&&<=m)  n和m是一个数字
*  {n,}:忽略m则表示n次以上(>=n)
*  {0,m}:最多m次
*
*
*  例如:
*  [abc]+
*  它可以匹配:
*  "a"  可以
*  "abcbabcbacbabcbacbabc" 可以的,字符是a或b或c,次数1次以上
*  "" 不行!至少要写1个字符
*  "abcd" 不行!因为其中一个字符出现了"d"
*
*  [abc]*
*  它可以匹配:
*  "a"  可以
*  "abcbabcbacbabcbacbabc" 可以的,字符是a或b或c
*  "" 可以
*  "abcd" 不行!因为其中一个字符出现了"d"
*
*
*  [abc]{3}
*  它可以匹配:
*  "aaa" 可以
*  "abc" 可以
*  "aaba"或"ab" 不可以,因为次数要求只能3次
*  "abd" 不可以,因为其中一个字符是"d"
*
*  [abc]{3,5}
*  "aaa" 可以
*  "abcbc" 可以
*  "aa"或"abcbcb" 不可以,次数只能在3-5次之间

*  分组:
*  ():可以将其内容看作一个整体
*  (X|Y):"|"表达"或"的意思 这个整体可以是X也可以是Y
*  例如:
*  (abc){3}
*  abcabcabc 可以:abc这个整体要出现3次
*  abcabc 不行,因此次数不够
*  abcabcdef 不行,次数够,但有一次的内容不是abc
*
*  (abc|def){3}
*  abcabcabc:可以
*  abcdefabc:可以
*
*
*  边界匹配:
*  ^:^出现在字符串最开始,表示字符串从这里开始
*  $:$表示字符串到这里结束
*
*  例如:
*  [abc]{3}
*  aaaaaaaaaa 不行  实际正则表达式匹配时是通过的,因为字符串只要部分内容符合即可
*
*  ^[abc]{3}
*  aaadnmsduhj 可以 字符串最开始前三个字符符合正则表达式要求
*
*  [abc]{3}$
*  ahjsdjhaaa 可以 字符串最后的三个字符符合正则表达式要求
*
*  ^[abc]{3}$
*  abc 可以 正则要求字符串从头到尾只有3个字符
*  abcsdasdabc 不可以的
*
*
*  ^[abc]{3}.*[abc]{3}$
*  abcsdasdabc 可以
*
*  String提供了使用正则表达式的相关功能。
*
*  邮箱
*  [email protected]
*  用户名@域名.com
*
*  用户名:可以是数字,字母,_。至少写一个字符
*  域名:字母,数字。至少一个字符
*  .com(后缀):.a(字母)的组合。该组合要出现一次以上
*
*  用户名@域名.com
*  [a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
*/

java使用

语法

boolean matches(String regex)
使用给定的正则表达式regex来验证当前字符串是否符合格式要求
满足格式方法返回true否则返回false。
注意:正则表达式不加边界匹配符"^"和"$"也是完全匹配的效果

 代码实现

        String email="[email protected]";
        String regex="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
        if(email.matches(regex)){
            System.out.println("是邮箱");
        }else {
            System.out.println("不是邮箱");
        }

你可能感兴趣的:(正则表达式,开发语言,java)