资讯专栏INFORMATION COLUMN

正则表达式的学习

dendoink / 2090人阅读

自己学习,只记些其中的要点。

.匹配任意单个字符, 但不匹配换行符

方括号中使用连字符来指定字符集的范围. 在方括号中的字符集不关心顺序. 例如, 表达式[Tt]he 匹配 the 和 The.

方括号的句号就表示句号. 表达式 ar[.] 匹配 ar.字符串

一般来说 ^ 表示一个字符串的开头, 但它用在一个方括号的开头的时候, 它表示这个字符集是否定的. 例如, 表达式[/^c]ar(没有/) 匹配一个后面跟着ar的除了c的任意字符.

号匹配 在之前的字符出现大于等于0次

字符和.字符搭配可以匹配所有的字符.. 和表示匹配空格的符号s连起来用, 如表达式scats*匹配0或更多个空格开头和0或更多个空格结尾的cat字符串.

+号匹配+号之前的字符出现 >=1 次. 例如表达式c.+t 匹配以首字母c开头以t结尾,中间跟着任意个字符的字符串. "c.+t" => The fat cat sat on the mat.

在正则表达式中元字符 ? 标记在符号前面的字符为可选, 即出现 0 或 1 次. 例如, 表达式 [T]?he 匹配字符串 he 和 The. "[T]?he" => The car is parked in the garage.

在正则表达式中 {} 是一个量词, 常用来一个或一组字符可以重复出现的次数. 例如, 表达式 [0-9]{2,3} 匹配最少 2 位最多 3 位 0~9 的数字.
"[0-9]{2,3}" => The number was 9.9997 but we rounded it off to 10.0.

我们可以省略第二个参数. 例如, [0-9]{2,} 匹配至少两位 0~9 的数字.
"[0-9]{2,}" => The number was 9.9997 but we rounded it off to 10.0.

如果逗号也省略掉则表示重复固定的次数. 例如, [0-9]{3} 匹配3位数字
"[0-9]{3}" => The number was 9.9997 but we rounded it off to 10.0.

(...) 特征标群
表达式 (ab)* 匹配连续出现 0 或更多个 ab. (c|g|p)ar 匹配 car 或 gar 或 par.

| 或运算符
(T|t)he|car 匹配 (T|t)he 或 car

转码特殊字符
反斜线 在表达式中用于转码紧跟其后的字符. 用于指定 { } [ ] / + * . $ ^ | ? 这些特殊字符. 如果想要匹配这些特殊字符则要在其前面加上反斜线 .
"(f|c|m)at.?" => The fat cat sat on the mat.

锚点. ^ 指定开头, $ 指定结尾.

^ 号
^ 用来检查匹配的字符串是否在所匹配字符串的开头.

$ 号
$ 号用来匹配字符是否是最后一个.

"(at.)$" => The fat cat. sat. on the mat.
18.简写字符集

.     除换行符外的所有字符
w     匹配所有字母数字, 等同于 [a-zA-Z0-9_]
W     匹配所有非字母数字, 即符号, 等同于: **[^w]**
d     匹配数字: [0-9]
D     匹配非数字: [^d]
s     匹配所有空格字符, 等同于: [	
f
p{Z}]
S     匹配所有非空格字符: [^s]
f     匹配一个换页符

     匹配一个换行符

     匹配一个回车符
	     匹配一个制表符
v     匹配一个垂直制表符
p     匹配 CR/LF (等同于 
),用来匹配 DOS 行终止符

19.前后关联约束(前后预查)

 ?=    前置约束-存在
 ?!    前置约束-排除
 ?<=    后置约束-存在
 ?

20.?=... 前置约束(存在)

 表达式 (T|t)he(?=sfat) 匹配 The 和 the, 在括号中我们又定义了前置约束(存在) (?=sfat) ,即 The 和 the 后面紧跟着 (空格)fat.
 

"(T|t)he(?=sfat)" => The fat cat sat on the mat.
21.?!... 前置约束-排除

表达式 (T|t)he(?!sfat) 匹配 The 和 the, 且其后不跟着 (空格)fat.

"(T|t)he(?!sfat)" => The fat cat sat on the mat.
22.?<= ... 后置约束-存在

 例如, 表达式 (?<=(T|t)hes)(fat|mat) 匹配 fat 和 mat, 且其前跟着 The 或 the.

"(?<=(T|t)hes)(fat|mat)" => The fat cat sat on the mat.
23.?

例如, 表达式 (?

"(? The cat sat on cat.
24.标志也叫修饰语, 因为它可以用来修改表达式的搜索结果. 这些标志可以任意的组合使用, 它也是整个正则表达式的一部分.

i    忽略大小写.
g      全局搜索.
m    多行的: 锚点元字符 ^ $ 工作范围在每行的起始.

25.修饰语 i 用于忽略大小写. 例如, 表达式 /The/gi 表示在全局搜索 The, 在后面的 i 将其条件修改为忽略大小写, 则变成搜索 the 和 The, g 表示全局搜索.
"/The/gi" => The fat cat sat on the mat.
26.修饰符 g 常用语执行一个全局搜索匹配, 即(不仅仅返回第一个匹配的, 而是返回全部). 例如, 表达式 /.(at)/g 表示搜索 任意字符(除了换行) + at, 并返回全部结果.
27.多行修饰符 m 常用语执行一个多行匹配.
例如, 表达式 /at(.)?$/gm 表示在待检测字符串每行的末尾搜索 at后跟一个或多个 . 的字符串, 并返回全部结果.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88572.html

相关文章

  • 正则达式

    摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

    bang590 评论0 收藏0
  • 正则达式

    摘要:最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。学习目标了解正则表达式语法在中使用正则表达式在中使 JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经验,进行扩展延伸,同时指出书里的一些问题。将会讨论安全的类型检测、惰性载入函数、冻结对象、定时器等话题。1. 安全的类型检测...

    yibinnn 评论0 收藏0
  • JavaScript正则进阶之路——活学妙用奇淫正则达式

    摘要:正则大法好,正则大法好,正则大法好,重要的事情说三遍。第二部分,这个部分是整个表达式的关键部分。学习正则如果还没有系统学习正则表达式,这里提供一些网上经典的教程供大家学习。正则表达式使用单个字符串来描述匹配一系列匹配某个句法规则的字符串。 原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同...

    BearyChat 评论0 收藏0
  • JavaScript正则进阶之路——活学妙用奇淫正则达式

    摘要:正则大法好,正则大法好,正则大法好,重要的事情说三遍。第二部分,这个部分是整个表达式的关键部分。学习正则如果还没有系统学习正则表达式,这里提供一些网上经典的教程供大家学习。正则表达式使用单个字符串来描述匹配一系列匹配某个句法规则的字符串。 原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同...

    APICloud 评论0 收藏0
  • js正则达式学习笔记

    摘要:说来惭愧,做前端快三年对于正则表达式的应用还是很浅薄,大家都知道正则的速度基本上是最快的,但就是懒得去记那些语法和规则,这次项目中多次用到了需要匹配替换的动作,终于下定决心去研究一下了。 说来惭愧,做前端快三年对于正则表达式的应用还是很浅薄,大家都知道正则的速度基本上是最快的,但就是懒得去记那些语法和规则,这次项目中多次用到了需要匹配替换的动作,终于下定决心去研究一下了。 实例化正则对...

    Towers 评论0 收藏0

发表评论

0条评论

dendoink

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<