《精通正则表达式》学习笔记
《精通正则表达式》学习笔记
dhb_oschina 发表于5年前
《精通正则表达式》学习笔记
  • 发表于 5年前
  • 阅读 47
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

以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#

http://www.regexr.com/

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

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

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

    状态转换图

    imageimage

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

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

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

    状态转换图

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.匹配浮点数

    匹配举例 :匹配如下格式,最前面的+-号不是必须的;若是以小数点开头,则小数点后必须有数字;浮点数必须要有至少一位数字。如-29、-96.7、-.12、-8.9、 .39  、+.1776、+.3等

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

    状态转换图

    image

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 9
博文 92
码字总数 186411
×
dhb_oschina
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: