美文网首页
正则表达式(一)

正则表达式(一)

作者: StarShift | 来源:发表于2016-10-16 00:04 被阅读81次

正则表达式在线测试:
http://tool.chinaz.com/regex
参考资料:《学习正则表达式》Michael Fitzgerald O'reilly

从匹配北美电话号码开始

707-827-7019
  1. 匹配 0 到 9 范围内的任意数字。
    正则表达式中 [] 是元字符,因此方括号不参加匹配。[0-9] 这种形式的正则表达式乘坐字符组,有时候也加字符集。
[0-9]
  1. 希望缩小匹配的数字范围:
    [012789]

  2. 使用转义字符 \d:
    使用转义字符 \d 可以使用以下表达式来匹配文字中的内容。
    \d\d\d-\d\d\d-\d\d\d\d

  3. 如果连接符不是-,而是_或者|:, 那么可以使用如下方式进行匹配:
    \d\d\d.\d\d\d.\d\d\d\d
    那么,他能够匹配:
    707%827%7019
    707|827|7019

捕获分组和向后引用

考虑,我们想要匹配 707 , 这个时候我们需要编写一个捕获分组和向后引用。使用一对括号,()表示对分组的捕获。

(\d)\d\1
这个正则表达式的意思:

  • (\d) 匹配第一个数字并将其捕获, 数字7。
  • \d 匹配第二个数字(数字0), 但是没有捕获。
  • \1 表示对捕获的数字进行反引用(数字7)。

使用量词

使用量词可以使正则表达式变得非常简化并且美观。

\d {3}-?\d{3}-?\d{4}
量词一定跟在需要匹配的内容的后面,花括号中的数字表示匹配内容出现的次数。

  • ? 是另外一种量词,表示可以出现或者只出现一次。
  • + 表示出现一个或者多个。
  • * 表示出现0个或者多个。

更加简洁的表示方法:
(\d{3, 4}[. -]?) +

这个表达式不是完全对,因为它只能匹配3个或这个4个的数字,需要更加进一步改进。
(\d{3}[. -]?){2}\d{4}

如果区号也是可选的,并且(707)-827-7019 的括号也是可选的。

707-827-8019
(707)-827-8019
827-8019
8278019

(^\d{3}|\(\d{3}\))?-?\d{3}-?\d{4}

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • Android 正则表达式的用法

    正则表达式及应用 一、 正则表达式 (一)、概念: 正则表达式(regular expression)就是...

  • 常用正则表达式

    常用正则表达式大全!(例如:匹配中文、匹配html)目录导航一、常见正则表达式二、正则表达式应用一、常见正则表达式...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 2019-01-11三剑客之grep

    一、正则表达式 基本正则表达式 逐一阐述 扩展正则表达式 案例 二、grep 参数 案例

  • 第十一课(2018-06-04)

    目录正则表达式扩展正则表达式grepsedawk 1. 正则表达式 Regular Expression, 通过一...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • 正则表达式

    一、正则表达式概述 1.1 什么是正则表达式 ​ 正则表达式(regular expression)是一个描...

网友评论

      本文标题:正则表达式(一)

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