牛逼的正则表达式(1)---匹配语法


一、题记

以前很少接触到文字搜索匹配的功能,所以正则表达式也是用的少,由于最近在做一个工具,其中用到了正则表达式,所以写篇博客巩固学到的知识,真是不学不知道,一学吓一跳,好牛逼的正则啊。


二、基本概念

正则表达式:是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能够按照某种模式匹配一个有相似特征的字符串集合,在代码中常写为regex、regexp、RE。
在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。


三、使用规则

元字符 说明 使用样例
\ 转义字符 \n匹配换行
re1|re2 匹配正则表达式re1或re2 foo|bar
.点 匹配任何字符(换行符除外) b.b
^ 匹配字符串的开始 ^Dear
$ 匹配字符串的结尾 com$
* 匹配前面出现的正则表达式零次或多次 [A-Za-z0-9]*
+ 匹配前面出现的正则表达式一次或多次 [a-z]+\.com
? 匹配前面出现的正则表达式零次或一次 goo?
{N} 匹配前面出现的正则表达式N次 [0-9]{3}
{M,N} 匹配前面出现的正则表达式M~N次 [0-9]{5,9}
[…] 匹配字符组里出现的任意一个字符 [aeIoU]
[x-y] 匹配从字符x到y中的任意一个字符 [A-Za-z]
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符 [^a-z]
(…) 匹配封闭号中正则表达式,并保存为子组 ([0-9]{3})?,f(oo
\d 匹配任何数字,和[0-9]一样,(\D是\d的反义,任何非数字) data\d+.txt
\w 匹配任何数字字母,和[A-Za-z0-9]一样,(\W是\w的反义) \w+
\s 匹配任何空白符,(\S是\s的反义)
\b 匹配一个单词边界,(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的) “er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
\B 匹配非单词边界 “er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...