正则表达式

正则表达式网址https://regexr.com

1. 匹配任意字符

基本格式([A-Z])\w+

匹配随意一个字符串str

匹配“王XX”王..

.:匹配除断行外任意一个字符,\.匹配“.”这一个字符

转义符\

2. 匹配字母和数字

\w:匹配字母、数字、下划线

\W:匹配被\w排除的东西(\w的补集)

3. 匹配数字

\d:匹配阿拉伯数字

\D: 匹配非阿拉伯数字(\d的补集)

4. 匹配空白字符

\s:匹配空白字符:空格、制表符、断行等

\S(\s的补集)

5. 字符集合

[abc]只匹配abc这三个字符(不包含大写)

[a-z] 匹配从a到z的字符

用Unicode匹配中文字符

(graphemica网站:输入Unicode字符显示中文字符)

[选择范围] 匹配括号中的任意一个字符

6. 重复

[范围]+重复一次或多次
e.g: [yY][oO]+匹配yo,Yo,yooo,YO等字符串

[范围]*重复零次或多次

[范围]?重复零个或一个

指定重复范围

{a,b}匹配重复范围在a到b次

{a,b}\b只匹配重复范围在a到b次的字符串,超过的就不匹配了

\b边界

{a}匹配重复a次的字符串(不到a次的不会匹配到

{a,}匹配重复范围为a次以上

7. 分组匹配

(.+)(.+)

$1表示第一组,以此类推

abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。

[^abc]匹配除abc外的所有字符

[\s\S]
匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。

特别字符

$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。
( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 [。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\‘ 匹配 “",而 ‘(‘ 则匹配 “(“。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 ^。
{ 标记限定符表达式的开始。要匹配 {,请使用 {。
| 指明两项之间的一个选择。要匹配 |,请使用 |。

修饰符

修饰符 含义 描述
i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
g global - 全局匹配 查找所有的匹配项。
m multi line - 多行匹配 使边界字符 ^$ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。
s 特殊字符圆点 . 中包含换行符 \n 默认情况下的圆点 . 是 匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。

1
2
3
4
5
6
var str="Google runoob taobao runoob"; 
var n1=str.match(/runoob/); // 查找第一次匹配项
var n2=str.match(/runoob/g); // 查找所有匹配项
var n2=str.match(/runoob/gi); // 不区分大小写
var n2=str.match(/^runoob/gm); // 多行匹配

示例

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+)://([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>])?>[\s\S]<\s*/\1\s*>/ 匹配 HTML 标记。