文档章节

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

dhb_oschina
 dhb_oschina
发布于 2013/07/27 13:17
字数 488
阅读 48
收藏 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
粉丝 9
博文 220
码字总数 190497
作品 0
程序员
开始系统学习“正则表达式”

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

红薯
2010/07/01
702
22
分享51本关于JavaScript方面的学习书籍(免费下载)

分享51本关于JavaScript方面的学习书籍(免费下载) 1、JavaScript面向对象15分钟教程 2、原型、作用域、闭包的完整解释 3、Javascript面向对象特性实现(封装、继承、接口) 4、JavaScript面向...

邓剑彬
2012/12/02
1K
12
精通正则表达式的 12 个有用资源

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

oschina
2013/07/31
12.8K
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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

1、Vue解决安卓4.4不兼容的问题

1.npm安装 npm install babel-polyfill--save-devnpm install es6-promise--save-dev package.json中会出现 "babel-polyfill": "^6.26.0","es6-promise": "^4.1.1", 2.main.js引入 impo......

阿K1225
7分钟前
0
0
mybatis generator 属性详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis......

太黑_thj
10分钟前
0
0
windows nvm 安装 node

nvm 是 node 的版本控制管理 下面是下载 nvm 的地址,选择 nvm-setup.zip 下载 https://github.com/coreybutler/nvm-windows/releases 就是下一步下一步,一键安装 基本命令有: nvm arch [32...

U_I_A_N
12分钟前
0
0
js判断字符串中是否包含某个字符串

indexOf() indexof()方法可以返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。 var str = "123";console.log(str.indexOf("3") != -1);...

小星星_cjx
25分钟前
0
0
函数式组件完整例子

之前创建的组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法。它只是一个接收参数的函数。 在下面这个例子中,我们标记组件为 functional,这意味它是无状态 (没有响...

tianyawhl
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部