“正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。 该表达式可用作一个将字符模式与要搜索的字符串相匹配的模板。

正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。

特殊字符
元字符

下表包含了多字符元字符的列表以及它们在正则表达式中的行为。

元字符

行为

示例

\b

与一个字边界匹配;即字与空格间的位置。

er\b 与“never”中的“er”匹配,但与“verb”中的“er”不匹配。

\B

非边界字匹配。

er\B 与“verb”中的“er”匹配,但与“never”中的“er”不匹配。

\d

数字字符匹配。

等效于 [0-9]。

在搜索字符串“12 345”中,\d{2}与“12”和“34”匹配。 \d与“1”、“2”、“3”、“4”和“5”匹配。

\D

非数字字符匹配。

等效于 [^0-9]。

\D+ 与“abc123 def”中的“abc”和“def”匹配。

\w

与以下任意字符匹配:A-Z、a-z、0-9 和下划线。

等效于 [A-Za-z0-9_]。

在搜索字符串“The quick brown fox…”中,\w+与“The”、“quick”、“brown”和“fox”匹配。

\W

与除 A-Z、a-z、0-9 和下划线以外的任意字符匹配。

等效于 [^A-Za-z0-9_]。

在搜索字符串“The quick brown fox…”中,\W+与“…”和所有空格匹配。

[xyz]

字符集。 与任何一个指定字符匹配。

[abc] 与“plain”中的“a”匹配。

[^xyz]

反向字符集。 与未指定的任何字符匹配。

[^abc] 与“plain”中的“p”、“l”、“i”和“n”匹配。

[a-z]

字符范围。 匹配指定范围内的任何字符。

[a-z] 与“a”到“z”范围内的任何小写字母字符匹配。

[^a-z]

反向字符范围。 与不在指定范围内的任何字符匹配。

[^a-z] 与不在范围“a”到“z”内的任何字符匹配。

{n}

正好匹配 n 次。 n 是非负整数。

o{2} 与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。

{n,}

至少匹配 n 次。 n 是非负整数。

* 与 {0,} 相等。

+ 与 {1,} 相等。

o{2,} 与“Bob”中的“o”不匹配,但与“foooood”中的所有“o”匹配。

{n,m}

匹配至少 n 次,至多 m 次。 n 和 m 是非负整数,其中 n <=m。 逗号和数字之间不能有空格。

? 与 {0,1} 相等。

在搜索字符串“1234567”中,\d{1,3}与“123”、“456”和“7”匹配。

(模式)

与模式 匹配并保存匹配项。 您可以从由 JScript 中的 exec Method返回的数组元素中检索保存的匹配项。 若要匹配括号字符 ( ),请使用“\(”或者“\)”。

(Chapter|Section) [1-9]与“Chapter 5”匹配,保存“Chapter”以备将来之用。

(?:模式)

与模式 匹配,但不保存匹配项;即不会存储匹配项以备将来之用。 这对于用“or”字符 (|) 组合模式部件的情况很有用。

industr(?:y|ies) 与industry|industries 相等。

(?=模式)

正预测先行。 找到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。 不会保存匹配项以备将来之用。

^(?=.*\d).{4,8}$ 对密码应用以下限制:其长度必须介于 4 到 8 个字符之间,并且必须至少包含一个数字。

在该模式中,.*\d 查找后跟有数字的任意多个字符。 对于搜索字符串“abc3qr”,这与“abc3”匹配。

从该匹配项之前(而不是之后)开始,.{4,8} 与包含 4-8 个字符的字符串匹配。 这与“abc3qr”匹配。

^ 和 $ 指定搜索字符串的开始和结束位置。 这将在搜索字符串包含匹配字符之外的任何字符时阻止匹配。

(?!模式)

负预测先行。 匹配与模式 不匹配的搜索字符串。 找到一个匹配项后,将在匹配文本之前开始搜索下一个匹配项。 不会保存匹配项以备将来之用。

\b(?!th)\w+\b 与不以“th”开头的单词匹配。

在该模式中,\b 与一个字边界匹配。 对于搜索字符串“ quick ”,这与第一个空格匹配。(?!th) 与非“th”字符串匹配。这与“qu”匹配。

从该匹配项开始,\w+ 与一个字匹配。 这与“quick”匹配。

\cx

匹配 x 指示的控制字符。 x 的值必须在 A-Z 或 a-z 范围内。如果不是这样,则假定 c 就是文本“c”字符本身。

\cM 与 Ctrl+M 或一个回车符匹配。

\xn

匹配 n,此处的 n 是一个十六进制转义码。 十六进制转义码必须正好是两位数长。 允许在正则表达式中使用 ASCII 代码。

\x41 与“A”匹配。 \x041 等效于后跟有“1”的“\x04”(因为 n 必须正好是两位数)。

\num

匹配 num,此处的 num 是一个正整数。 这是对已保存的匹配项的引用。

(.)\1 与两个连续的相同字符匹配。

\n

标识一个八进制转义码或反向引用。 如果 \n 前面至少有 n 个捕获子表达式,那么 n 是反向引用。 否则,如果 n 是八进制数 (0-7),那么 n 是八进制转义码。

(\d)\1 与两个连续的相同数字匹配。

\nm

标识一个八进制转义码或反向引用。 如果 \nm 前面至少有 nm个捕获子表达式,那么 nm 是反向引用。 如果 \nm 前面至少有n 个捕获子表达式,则 n 是反向引用,后面跟有文本 m。 如果上述情况都不存在,当 n 和 m 是八进制数字 (0-7) 时,\nm 匹配八进制转义码 nm。

\11 与制表符匹配。

\nml

当 n 是八进制数字 (0-3),m 和 l 是八进制数字 (0-7) 时,匹配八进制转义码 nml。

\011 与制表符匹配。

\un

匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符。

\u00A9 与版权符号 (©) 匹配。

非打印字符

下表包含表示非打印字符的转义序列。

字符

匹配

等效于

\f

换页符。

\x0c 和 \cL

\n

换行符。

\x0a 和 \cJ

\r

回车符。

\x0d 和 \cM

\s

任何空白字符。 其中包括空格、制表符和换页符。

[ \f\n\r\t\v]

\S

任何非空白字符。

[^ \f\n\r\t\v]

\t

Tab 字符。

\x09 和 \cI

\v

垂直制表符。

\x0b 和 \cK

优先级顺序

正则表达式的计算方式与算术表达式非常类似;即从左到右进行计算,并遵循优先级顺序。

下表按从高到低的顺序包含了正则表达式运算符的优先级顺序。

运算符

说明

\

转义符

(), (?:), (?=), []

括号和中括号

*、+、?、{n}、{n,}、{n,m}

限定符

^、$、\任何元字符

定位点和序列

|

替换

字符具有高于替换运算符的优先级,例如,允许“m|food”匹配“m”或“food”。

正则表达式之语法规则相关推荐

  1. php 正则 规则,PHP 正则表达式的语法规则

    正则表达式描述了一种字符串匹配模式,通过这个模式在特定的函数中对字符串进行匹配.查找.替换及分割等操作.正则表达式作为一个匹配的模板,是由于原子(普通字符.例如 a-z )有特殊功能的字符(称之为元字 ...

  2. 正则表达式的语法规则

    一.行定位符(^和$) 行定位符就是用来描述字串的边界."^"表示行的开始:"$"表示行的结尾.如: ^tm : 该表达式表示要匹配字串tm的开始位置是行头,如 ...

  3. 正则表达式的语法规则及使用

    正则表达式 初识正则表达式: 创建一个正则表达式 正则表达式字面量 var reg = /abc/; new RegExp(); var reg = new RegExp('abd') //括号里面写 ...

  4. (常用API)正则表达式语法规则

    正则表达式的匹配规则 参照帮助文档,在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写字母.我们来学习语法规则. 正则表达式的语法规则: 字符:x 含义:代表的是字符x 例如:匹 ...

  5. 炎炎夏日,深夜详谈nginx的配置中location和rewrite的语法规则(从入门到高手的第六步)

    前言 在生产实际中,当用户页面请求后,很多是需要自动跳转到其他特定页面,这个时候往往可以利用nginx配置中location规则或rewrite语法进行设置. Nginx提供的全局变量或自己设置的变量 ...

  6. 10、正则表达式 (笔试题、语法规则、正则对象方法、正则实例属性、支持正则表达式的String对象的方法、贪婪匹配与非贪婪匹配)

    正则表达式 目录 10.1 语法规则 10.1.1 创建方法 1.直接量 2.构造方法RegExp() 10.1.2 三个属性i,g,m 10.1.3 方括号 10.1.4 元字符 10.1.5 量词 ...

  7. PHP正则表达式语法规则

    什么是正则表达式? 正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式,可以匹配.替换.截取匹配的字符.对于用户来说可能以前接触过DOS,如果想匹配当前文件下所有的文件文本,可以输入&q ...

  8. 正则表达式的基本语法规则

    一.正则表达式的概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用 ...

  9. LLVM一些语法规则

    LLVM一些语法规则 LLVM文档 LLVM编译器基础架构支持广泛的项目,从工业强度编译器到专门的JIT应用程序,再到小型研究项目. 同样,文档分为几个针对不同受众的高级别分组: LLVM设计概述 几 ...

最新文章

  1. Matlab-贪心/贪婪算法
  2. 大数据学习——sparkRDD
  3. python开发sqlite3完整_让Python更加充分的使用Sqlite3-阿里云开发者社区
  4. OpenStack Juno系列之计算节点搭建
  5. Nginx的主要函数调用关系分析
  6. 持续集成部署Jenkins工作笔记0020---20.在GitHub上创建WebHook
  7. python字符串的10个常用方法总结
  8. 美团校招提前批 移动端开发 一面 二面 面经
  9. oa服务器日常维护,OA系统怎么维护?
  10. mysql修改指定记录_sql操作之修改记录值
  11. FIT2CLOUD云管平台完成华为云鲲鹏云服务兼容性认证
  12. 用计算机代码怎么表白,程序员如何用代码向喜欢的人表白?
  13. html中的换行符也占空间,如何解决
  14. vue 点击按钮改变颜色
  15. 二元二次方程例题_二元二次方程组 解法 例题
  16. 图像工作回顾之三:极线匹配
  17. C语言socket重连和心跳,c# socket 心跳 重连
  18. MotionEvent 事件解读
  19. 第四十二次总结:json模块与pickle模块
  20. “雾计算” 是什么?会不会在2018年迎来爆发?

热门文章

  1. pyinstaller打包后闪现cmd黑色窗口解决方案
  2. Java Lambda 表达式快速学习
  3. [Ext JS 7]7.4 样式主题(Theme)
  4. multipart form-data boundary 说明
  5. 多线程面试题c Linux,【多线程Linux面试题】面试问题:小伙用C语言熬… - 看准网...
  6. Python中字符串的startswith()和endswith()方法
  7. Python中的列表(list)
  8. Python中的zip函数
  9. python 计时器_Python上下文管理器的魔力
  10. server sql 中类型为bit应该插入什么值_关于SQL Server中bit类型字段增删查改的一些事...