我的正则表达式

前端之家收集整理的这篇文章主要介绍了我的正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

基本概念

摘自http://deerchao.net/tutorials/regex/regex.htm#negation

元字符

  • .匹配除换行符以外的任意字符

  • \w匹配字母或数字或下划线或汉字

  • \s匹配任意的空白符

  • \d匹配数字

  • \b匹配单词的开始或结束

  • ^匹配字符串的开始

  • $匹配字符串的结束
    示例:

(1) \ba\w\b 匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w),最后是单词结束处(\b)
(2) \d+匹配1个或更多连续的数字
(3) \b\w{6}\b 匹配刚好6个字符的单词。
(4) ^\d{5,12}$ 匹配有5到12个字符的QQ

重复信息,表示0个到多个字符

  • *重复零次或更多次

  • +重复一次或更多次

  • ?重复零次或一次

  • {n}重复n次

  • {n,}重复n次或更多次

  • {n,m}重复n到m次

字符类,表示一个字符

  • [0-9]表示一个0到9的数字,和\d同义

  • [a-z0-9A-Z_]表示一个数字或者大小写字母或者_

  • \(?0d{2}[)-]?\d{8}表示0个或者1个(,接着是一个0,接着是两个数字,接着是0个或者1个)或者-,最后是8个数字

分枝条件 |

匹配原理,从左至右,匹配成功之后就不会往后匹配
(1) 0\d{2}-\d{8}|0\d{3}-\d{7} 0开始两个数字,然后-,然后是8个数字;或者0开始之后三个数字,然后-,然后是7个数字
(2) \(?0\d{2}\)?[- ]?\d{8}|0\d{2}[-]?\d{8} 以0个或者1个(开始,然后是一个0,然后是两个数字,然后是0个或者1个),然后是8个数字;或者0开始,然后是两个数字,然后是0个或者1个-,然后是8个数字
(3) \d{5}-\d{4}|\d{5}

分组 ()

(1) (\d{1,3}\.){3}d{1,3} 粗略的匹配IP地址,首先1-3个数字加.重复三次,然后是1-3个数字
(2) ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) 精细的匹配IP地址,使用()|组合

反义

  • \W 匹配任意不是字母,数字,下划线,汉字的字符

  • \S 匹配任意不是空白符的字符

  • \D 匹配任意非数字的字符

  • \B 匹配不是单词开头或结束的位置

  • [^x]匹配除了x以外的任意字符

  • [^aeIoU]匹配除了aeIoU这几个字母以外的任意字符

常见正则表达式

  • 身份证 /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

  • 邮件 /^\w+([\.-]?\w+)@\w+([\.-]?\w+)(\.\w{2,3})+$/

  • 邮件二 /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;

  • ^(0|1-9*)$ 只能输入0和非0打头的数字

  • ^[-+]?\d+(\.\d+)?$ 只能输入实数

原文链接:https://www.f2er.com/regex/358725.html

猜你在找的正则表达式相关文章