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

我的正则表达式

发布时间:2020-12-14 00:44:58 所属栏目:百科 来源:网络整理
导读:基本概念 摘自http://deerchao.net/tutorials/regex/regex.htm#negation 元字符 .匹配除换行符以外的任意字符 w匹配字母或数字或下划线或汉字 s匹配任意的空白符 d匹配数字 b匹配单词的开始或结束 ^匹配字符串的开始 $匹配字符串的结束 示例: (1) baw

基本概念

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

元字符

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

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

  • s匹配任意的空白符

  • d匹配数字

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

  • ^匹配字符串的开始

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

(1) bawb 匹配以字母a开头的单词——先是某个单词开始处(b),然后是字母a,然后是任意数量的字母或数字(w),最后是单词结束处(b)
(2) d+匹配1个或更多连续的数字
(3) bw{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) 0d{2}-d{8}|0d{3}-d{7} 0开始两个数字,然后-,然后是8个数字;或者0开始之后三个数字,然后-,然后是7个数字
(2) (?0d{2})?[- ]?d{8}|0d{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]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?) 精细的匹配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+)?$ 只能输入实数

(编辑:李大同)

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

    推荐文章
      热点阅读