美文网首页
正则表达式概念小结

正则表达式概念小结

作者: 不大不小的石头 | 来源:发表于2018-03-21 17:26 被阅读17次

正则表示中的特殊字符有不同的含义,一共分 6 种。分别是:

  • 字符类别
  • 字符集合
  • 边界
  • 分组和反向引用
  • 数量词
  • 断言

字符类别(Chraracter Classes)

常见的有

  • . 表示匹配任意字符
  • \d 表示匹配任意阿拉伯数字
  • \w 表示匹配任意字符(还包括下划线)
  • \s 表示匹配一个空白符号

特殊字符的大写形式则表达了小写形式的反义,不在赘述

字符集合(Chraracter Sets)

  • [xyz] 表示匹配一个字符的集合,也叫字符组。别看它很长,其实它只匹配一个字符。可以使用 - 来指定一个范围
  • [^xyz] 是上一个匹配方式的反义形式,叫做反义字符组。即匹配任意不包括在括号内的字符

边界(Boundaries)

  • ^ 匹配开始
  • $ 匹配结尾

分组和反向引用(grouping & back references)

  • (X) 匹配 x 并且捕获匹配项,被称之为捕获型分组
  • (?:X) 非捕获型分组,仅做简单的匹配,并不会捕获所匹配的文本。有微弱的性能优势。非捕获型分组并不会干扰捕获型分组的编号。如果 (?:X)? 带有后缀 ? 则表示这个分组是可选的
  • \n n 是一个正整数,一个反向引用,指向正则表达式中第 n 个括号中匹配的子字符串

数量词(Quantifiers)

  • X* 匹配前面的模式次数大于等于 0
  • X+ 匹配前面的模式次数必须大于等于 1。结合后面的总结,我们发现它其实等同于 {1,}
  • X*?X*,但是会匹配最小可能匹配。比如 /".*?"/ 匹配 '"foo" "bar"' 中的 '"foo"',而 * 后面没有 ? 时匹配 '"foo" "bar"'
  • X? 匹配前面的模式 X 0 或 1 次。如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( non-greedy) ,即匹配次数最小化。反之,默认情况下,是贪婪的(greedy),即匹配次数最大化
  • x|y 匹配 x 或 y
  • x{n} 前面的模式 x 连续出现 n 次时匹配。{n,} 和 {n, m} 则表示次数的区间

断言(Assertions)

  • x(?=y) 条件限定,只有当 x 后面紧跟着 y 时,才匹配 x
  • x(?!y) 条件限定,只有当 x 后面不是紧跟着 y 时,才匹配 x

常见正则表达式收集


// 验证邮箱
([a-z_A-Z0-9]+@[a-z_A-Z0-9]+\.(com|org|net))

// 验证网址
(?:https?:\/\/)?(?:[a-zA-Z0-9])+\.(?:com|net|org)

// 验证网址
^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$ 

相关文章

  • 正则表达式概念小结

    正则表示中的特殊字符有不同的含义,一共分 6 种。分别是: 字符类别 字符集合 边界 分组和反向引用 数量词 断言...

  • 正则表达式在程序编码中的应用

    正则表达式在程序编码中的应用 正则表达式(括号)、[中括号]、{大括号}的区别小结 正则表达式的() [] {}有...

  • JS正则表达式

    正则表达式的概念 正则表达式(Regular Expression)是计算机科学的一个概念。正则表达式使用单个字符...

  • Android 正则表达式的用法

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

  • Java常用API(二)

    正则表达式 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex)...

  • 正则基本知识

    正则表达式 第一章:基本概念 概念: 正则表达式(regular expression)是一个描述字符模式的对象,...

  • JS正则

    正则表达式概念 正则表达式(Regular Expression,简写为regex、regexp或RE),使用单个...

  • 关于正则

    概念: 正则表达式(Regular Expression)是计算机科学的一个概念。正则表达式使用单个字符串来描述、...

  • Java 正则表达式

    1 正则表达式的概念   正则表达式(英语:Regular Expression,在代码中常简写为regex)。 ...

  • 正则表达式

    正则表达式——基本语法 正则表达式(Regular Expression)是计算机科学的一个概念。正则表达式使用单...

网友评论

      本文标题:正则表达式概念小结

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