正则表达式

什么是正则表达式 ?

正则表达式是一种被用于从文本中检索符合某些特定模式的文本。

元字符

元字符 描述
. 匹配除换行符以外的任意字符。
[ ] 字符类,匹配方括号中包含的任意字符。
[^ ] 否定字符类。匹配方括号中不包含的任意字符
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
{n,m} 花括号,匹配前面字符至少 n 次,但是不超过 m 次。
(xyz) 字符组,按照确切的顺序匹配字符 xyz。
| 分支结构,匹配符号之前的字符或后面的字符。
\ 转义符,它可以还原元字符原来的含义,允许你匹配保留字符 [ ] ( ) { } . * + ? ^ $ \ |
^ 匹配行的开始
$ 匹配行的结束

 

简写字符集

简写 描述
. 匹配除换行符以外的任意字符
\w 匹配所有字母和数字的字符:[a-zA-Z0-9_]
\W 匹配非字母和数字的字符:[^\w]
\d 匹配数字:[0-9]
\D 匹配非数字:[^\d]
\s 匹配空格符:[\t\n\f\r\p{Z}]
\S 匹配非空格符:[^\s]

断言

符号 描述
?= 正向先行断言
?! 负向先行断言
?<= 正向后行断言
? 负向后行断言

 

 

修饰符

标记 描述
i 不区分大小写:将匹配设置为不区分大小写。
g 全局搜索:搜索整个输入字符串中的所有匹配。
m 多行匹配:会匹配输入字符串每一行。

 

常用正则表达式

  • 正整数^\d+$
  • 负整数^-\d+$
  • 电话号码^+?[\d\s]{3,}$
  • 电话代码^+?[\d\s]+(?[\d\s]{10,}$
  • 整数^-?\d+$
  • 用户名^[\w\d_.]{4,16}$
  • 字母数字字符^[a-zA-Z0-9]*$
  • 带空格的字母数字字符^[a-zA-Z0-9 ]*$
  • 密码^(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$
  • 电子邮件^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$
  • IPv4 地址^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$
  • 小写字母^([a-z])*$
  • 大写字母^([A-Z])*$
  • 网址^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$
  • VISA 信用卡号码^(4[0-9]{12}(?:[0-9]{3})?)*$
  • 日期(MM/DD/YYYY)^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}$
  • 日期(YYYY/MM/DD)^(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])$
  • 万事达信用卡号码^(5[1-5][0-9]{14})*$

你可能感兴趣的:(正则表达式,字符串,regex)