正则匹配学习笔记

作者: Zoemings | 来源:发表于2017-10-10 17:47 被阅读63次

匹配模式

/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)

特殊字符

限定符

字符 描述
* 匹配前面的子表达式零次或多次
? 匹配前面的子表达式零次或一次
+ 匹配前面的子表达式一次或多次
{n} 匹配次数为n次
{n,} 至少匹配n次
{n,m} 最少匹配n次,最多匹配m次

* + ? 限定符都是贪婪的,会尽可能多的匹配文字,只有在他们后面加一个?就可以实现非贪婪和最小匹配

定位符

字符 描述
^ 匹配输入字符的开始位置
$ 匹配输入字符的结束位置
\b 匹配一个字边界,即字与空格间的位置。
\B 非字边界匹配
\B 非字边界匹配
\s 匹配任何空白字符,包括空格、制表符、换页符等等。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
[\b] 匹配一个退格符
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/

选择

用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

字符 描述
(pattern) 匹配并获取这一选择
(?:pattern) 匹配但不获取匹配结果配,不进行存储供以后使用。使用 "或"来组合一个模式的各个部分是很有用。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串
(?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。
[xyz] 字符集合。匹配所包含的任意一个字符。
[^xyz] 负值字符集合。匹配未包含的任意字符。
[a-z] 字符范围。匹配指定范围内的任意字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。

示例

一个单词连续出现的位置: /\b([a-z]+) \1\b/gi
将一个URL解析为协议、域、端口及相对路径: /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
匹配空行: /^\s*$/
匹配 HTML 标记: /<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\d3,4|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数  ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0)^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?$

相关文章

  • 正则匹配学习笔记

    匹配模式 /i (忽略大小写)/g (全文查找出现的所有匹配字符)/m (多行查找)/gi(全文查找、忽略大小写)...

  • 正则匹配库

    正则匹配用户名: 正则匹配用户名: 正则匹配手机号或者固定电话: 匹配中文: 正则匹配用户密码: 正则匹配电子邮箱...

  • 正则表达式

    最近跟廖老师学习了一下正则表达式,整理笔记如下: 基础 \d 匹配一个数字,\w 匹配一个字母或者数字,\s 匹配...

  • Nginx location的正则匹配

    Nginx location的正则匹配 Nginx正则匹配的匹配规则

  • 第二章 正则表达式位置匹配攻略

    第二章 正则表达式位置匹配攻略 正则表达式是匹配模式,要么匹配字符,要么匹配位置。请记住这句话。 然而大部分人学习...

  • 正则表达式

    在线正则表达试测试链接 正则表达式测试链接网址 正则匹配 结果为 匹配目标分组匹配 结果为 贪婪模式匹配 .*匹配...

  • 正则判断中文汉字

    正则匹配(全是中文汉字) 正则匹配(含有中文汉字)

  • 正则表达式

    学习正则的好网站 test方法 判断一个正则能否匹配到内容 match方法 匹配成功返回一个数组,匹配失败返回nu...

  • 正则表达式学习笔记

    简介 笔者的正则的学习笔记和思维导图 用处 字符串匹配 字符串查找 IDE集成 如何学习 分类别记忆 多练习,无他...

  • JS 常用正则表达你知道多少

    正则表达式或“regex”用于匹配字符串的各个部分,下面是作者创建正则表达式的备忘单,供大家学习参考。 匹配正则 ...

网友评论

    本文标题:正则匹配学习笔记

    本文链接:https://www.haomeiwen.com/subject/ejfpyxtx.html