《精通正则表达式》学习笔记

以Ruby语言格式为参考。 正则表达式

正则表达式在线测试网站: 测试

https://www.debuggex.com/?re=%28[0-9]{3}%29-%28[0-9]{3}%29-%28[0-9]{4}%29&str=123-456-7899 网站

http://www.osctools.net/regex# .net

http://www.regexr.com/ debug

1.匹配7月4号(July fourth)的文本。

    匹配举例   :月份多是July、Jul和jul,日期多是fourth、4th或者是4 get

    正则表达式:/^july? (fourth|4(th)?)$/i it

    状态转换图引用

    imageimage

2.匹配24小时制时间格式0:0:0,或00:00:00

    匹配举例   :除了正常的00:00:00到23:59:59外,时分秒容许单个,如0:0:0或9:9:9 bug

    正则表达式:/^([01]?\d{1}|2[0-3])(:[0-5]?\d{1}){2}$/ im

    状态转换图

image

3.匹配12小时制时间格式1:12 am,或12:9 pm

    匹配举例 :除了正常的01:59 am外,时分容许单个,如1:1 am。此外,时间和am/pm之间的空格可多个。

    正则表达式:/^(0?[1-9]|1[0-2]):[0-5]?\d +[ap]m$/

   状态转换图

    image

4. 找到相邻重复英文单词

    匹配举例 :如同时出现 “the the”或“the       the”

    正则表达式:/^([a-zA-Z]+) +\1$/i

   状态转换图

    image

    不能匹配项:有些引擎的-i参数有个bug,即不会对反向引用的内容忽略大小写。即,它可能找到“the the”,可是不能找到“the The”。

5.匹配一个标识符(indentifier)

    匹配举例 :标识符只包含字母、数字和下划线,可是不能以数字开头。同时可能有长度限制,如最长只有32字符

    正则表达式:/^[a-zA-Z_]\w{0,31}$/

    状态转换图

    image

6.匹配浮点数

    匹配举例 :匹配以下格式,最前面的+-号不是必须的;如果以小数点开头,则小数点后必须有数字;浮点数必需要有至少一位数字。如-2九、-96.七、-.十二、-8.九、 .39  、+.177六、+.3等

    正则表达式:/^[-+]?(\d+(\.\d*)?|\.\d+)$/

    状态转换图

    image

相关文章
相关标签/搜索