加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式的基础知识

发布时间:2020-12-13 22:21:39 所属栏目:百科 来源:网络整理
导读:正则表达式 1. 限制开头(^) 与限制结尾($) ^start : 表示以”start”开始; end $ : 表示以”end”结尾。 2. 范围限制([]) [0-9] : 表示一个字符,满足0到9之间的任何一个数字; [a-z] : 表示一个字符,满足a到z之间的任何一个小写字母; [A-Z] : 表示

正则表达式


1. 限制开头(^) 与限制结尾($)

  • ^start : 表示以”start”开始;
  • end$ : 表示以”end”结尾。

2. 范围限制([])

  • [0-9] : 表示一个字符,满足0到9之间的任何一个数字;
  • [a-z] : 表示一个字符,满足a到z之间的任何一个小写字母;
  • [A-Z] : 表示一个字符,满足A到Z之间的任何一个大写字母
  • [a-zA-Z] : 表示一个字符,满足a到z 或者 A到Z之间的任何一个字母;
  • [0-9a-z] : 表示一个字符, 满足0到9 或者 a到z之间的任何一个字母。

3. 反向范围限制([^])

  • [^0-9] : 表示一个字符, 满足**除了**0到9之外的其他任何一个字符;
  • [^a-z] : 表示一个字符, 满足**除了**a到z之外的其他任何一个字符。

4. 出现次数的限制(*, +)

  • * : 紧跟在后面的字符出现0次及以上;
  • + : 紧跟在后面的字符出现1次及以上。
  • Z* : ‘Z’ 出现了0次及以上;
  • Z+ : ‘Z’ 出现了1次及以上;

5. 指定出现次数({})

  • Z{3} : 表示Z出现3次,即ZZZ;
  • Z{3,} : 表示出现3次以上;
  • Z{3,5} : 表示Z出现3到5次(包括5次)。

6. 转义字符

  • “d” : 代表一个数字
String reg = "d";
boolean isMatch = Pattern.matches(reg,"5");  
// isMatch == true;
  • “D” : 代表一个非数字
String reg = "D";
boolean isMatch = Pattern.matches(reg,"5");  
// isMatch == false;
  • “w” : 代表一个字符,包括0-9,a-z,A-Z,_ 。
String reg = "w*";
boolean isMatch = Pattern.matches(reg,"aB_0"); 
// isMatch == true;
  • “W” : 代表一个字符,除了0-9,a-z,A-Z,_ 。
String reg = "W*";
boolean isMatch = Pattern.matches(reg,"++++"); 
// isMatch == true;
  • “t” : 制表符
  • “n” : 换行符
  • “r” : 回车符
  • “f” : 换页符
  • “s” : 空白字符,包括制表符、换行符、回车符、换页符
  • “S” : 非空白字符
  • “.” : 代表任意一个字符
  • “.” : 表示一个’.’
String reg = ".";
boolean isMatch = Pattern.matches(reg,"."); 
// isMatch == true;
  • “\” : 表示一个’’
String reg = "\";
boolean isMatch = Pattern.matches(reg,""); 
// isMatch == true;

7. 或者(|) 组合 (())

  • A|B : 表示 A或者B;
  • (AB)* : 把”AB”看做一个整体,重复0次及以上。

8. 实例

1. 身份证号

分析:
* 身份证号有15位或者18位;
* 身份证由数字或者X字母组成。

String reg = "(d|X){15}|(d|X){18}";
boolean isMatch = Pattern.matches(reg,"123456789123456789"); 
// isMatch == true;

2. 邮箱

分析:
* 邮箱有一个@符号;
* @前面是一个字符串,可以包含任意字符。可以是xxx.xxx.xxx的形式。分解为 xxx 和 (.xxx)* 两个部分;
* @后面是一个字符串,和@前面一样。

String reg = "(w)+(.w+)*@(w)+(.w+)*";
boolean isMatch = Pattern.matches(reg,"284967632@qq.com"); 
// isMatch == true;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读