我的正则表达式

基本概念

摘自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+)?$ 只能输入实数

    原文作者:pengj
    原文地址: https://segmentfault.com/a/1190000007765069
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞