常用的正则表达式

常用的正则表达式

正则表达式在线测试工具

常用的元字符

代码 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

简单示例

0\d\d-\d\d\d\d\d\d\d\d
0\d{2}-\d{8}

匹配以0开头,后面跟着两个数字-8个数字 的电话号码.

分枝条件(或)

|

如:

0\d{2}-\d{8}|0\d{3}-\d{7}

就可以匹配 012-12345678或者0123-1234567 之类的号码

分组(){}

(\d{1,3}\.){3}\d{1,3}

上面的意思是匹配一个1-3位数的数字且后面加个点 比如: 123. 重复三次如 123.1.2. 最后后面再跟上一个1-3位数字.

常用的反义代码

代码 说明
\w 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

贪婪与懒惰

注意:正则表达式有另一条规则,比懒惰/贪婪规则的优先级更高:最先开始的匹配拥有最高的优先权——The match that begins earliest wins。

懒惰限定符

代码 说明
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复

常用正则表达式

  • 匹配中文字符

    [\u4e00-\u9fa5]
    
  • 匹配双字节字符(包括汉字在内)

    [^\x00-\xff]
    
  • 匹配空白行

    \n\s*\r
    
  • 匹配Email地址

    [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
    
  • 匹配网址URL
    [a-zA-z]+://[^\s]*
    
  • 匹配国内电话号码

    \d{3}-\d{8}|\d{4}-\{7,8}
    
  • 匹配腾讯QQ号

    [1-9][0-9]{4,}
    
  • 匹配中国邮政编码

    [1-9]\d{5}(?!\d)
    
  • 匹配18位身份证号

    ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
    
  • 匹配(年-月-日)格式日期

    ([0-9]{3}[1-9]|[0-9]{2}1-9{1}|[0-9]{1}1-9{2}|1-9{3})-(((0[13578]|1[02])-(0[1-9]|12|3[01]))|((0[469]|11)-(0[1-9]|12|30))|(02-(0[1-9]|1|2[0-8])))
    
  • 匹配正整数

    ^[1-9]\d*$
    
  • 匹配负整数

    ^-[1-9]\d*$
    
  • 匹配整数

    ^-?[1-9]\d*$
    
  • 匹配非负整数(正整数 + 0)

    ^[1-9]\d*|0$
    
  • 匹配非正整数(负整数 + 0)

    ^-[1-9]\d*|0$
    
  • 匹配正浮点数

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
    
  • 匹配负浮点数

    ^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$
    
  • 匹配版本号

    \d+(\.\d+){0,2}
    

    {0,2}表示重复字数,改成*不限次数.根据需要,^判断起始位置,$判断结尾.如(仅匹配0.0.0格式):

    ^\\d+(\\.\\d+){2}$
    


Table of Contents

Search

    随机一句话而已