文档章节

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

dhb_oschina
 dhb_oschina
发布于 2013/07/27 13:17
字数 488
阅读 49
收藏 0

以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

© 著作权归作者所有

共有 人打赏支持
dhb_oschina
粉丝 10
博文 221
码字总数 190651
作品 0
程序员
私信 提问
开始系统学习“正则表达式”

我喜欢简单。 所以我一向不太接受正则表达式这么隐涩的技术,因为难以理解,无法很直观的判断一个表达式到底做何用途。 但最近这个想法彻底的改变了,在 OSChina 项目中尝试着使用一些正则表...

红薯
2010/07/01
784
22
这是一篇男女老少入门精通咸宜的正则笔记

前言 说句实话的,自从我整理这篇笔记后,基本上项目里遇到的所有正则匹配的问题,不论多复杂,只要回过头看这篇笔记,理解透彻,基本上都能解决的。这里关于深内容的描述,我这边也举了不少...

pekonchan
2018/12/16
0
0
精通正则表达式的 12 个有用资源

任何开发项目,不管使用的何种编程语言,经常都需要从给定的数据中提取一些值然后进行验证。例如输入的校验、过滤 URL 变量之类。而正则表达式用来处理这样的任务可以说是轻而易举,而且代码...

oschina
2013/07/31
13.5K
56
nginx location的匹配规则

nginx location的匹配规则 Run - 学习练习复习2017-02-2639 阅读 匹配nginxlocation规则 location匹配命令 ~ 执行正则表达式,区分大小写 ~* 执行正则表达式,不区分大小写 ^~ 表示普通字符...

Run - 学习练习复习
2017/02/26
0
0
web前端攻城狮整理的收藏夹

作为一名web前端开发工程师你的收藏夹存对了吗?下面是一份互联网上流传甚广的web前端开发收藏夹资源,包含学习网站、JS库、常用工具、常用插件、资讯书籍等资源。速速转存吧~ 一、学习网站 ...

inw3cschool
2017/03/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链时代的拜占庭容错:Tendermint (七)

原文题目:《Tendermint: Byzantine Fault Tolerance in the Age of Blockchains》 原文作者:Ethan Buchman 本文为节选 软件实现 Tendermint采用Go语言实现,代码在https://github.com/tend...

万向区块链
7分钟前
0
0
日志分级输出到指定文件

log4j.properties文件 #根设置,输出级别为DEBUG级别, 输出文件为 ERRORA,stdout,DEBUGAlog4j.rootLogger=DEBUG,ERRORA,stdout,DEBUGA#过滤掉spring框架下的额外日志#log4j.category...

嘴角轻扬30
13分钟前
0
0
Hash源码分析(JDK1.7和1.8的对比)

前言 HashMap 在 Java 和 Android 开发中非常常见 而HashMap 1.8 相对于 HashMap 1.7 更新多 今天,我将通过源码分析HashMap 1.8 ,从而讲解HashMap 1.8 相对于 HashMap 1.7 的更新内容,希望...

瑞查德-Jack
13分钟前
0
0
Amino——表现层

一、Amino 整体视觉感受 Amino采用的主题色是神秘的蓝紫色,搭配白色图标和文字,其他图标、按钮、卡片等采用饱和度较高的亮色,整体风格活泼灵动。蓝紫色给人一种神秘感,好比陌生人之间的社...

铸剑为犁413
14分钟前
0
0
日志服务与SIEM(如Splunk)集成方案实战

背景信息 目标 本文主要介绍如何让阿里云日志服务与您的SIEM方案(如Splunk)对接, 以便确保阿里云上的所有法规、审计、与其他相关日志能够导入到您的安全运维中心(SOC)中。 名词解释 LOG(S...

阿里云官方博客
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部