您的位置:首页 > 其它

正则表达式学习笔记

2018-02-05 18:49 295 查看

正则表达式

正则表达式测试网站:regexr.com


基础知识

1.量词

runoo+b,可以匹配 runoob、runooob、runoooooob 等。

+ 号代表前面的字符必须至少出现一次(1次或多次)。


runoo*b,可以匹配 runob、runoob、runoooooob 等。

* 号代表字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。


colou?r 可以匹配 color 或者 colour。

? 问号代表前面的字符最多只可以出现一次(0次、或1次)。


o{2} fo{2}d 可以匹配 food

n 是一个非负整数。匹配确定的 n 次。


o{2,} fo{2,}d 可以匹配 food foood fooood

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


o{2,5} fo{2,5}d 可以匹配 food foood fooood foooood

m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。


2.非打印字符

\f 换页符

\n 换行符

\r 回车符

\s 任何空白字符

\S 任何非空白字符

\t 制表符

\v 垂直制表符


3.需转义字符

例: $

$ () * + . [] ? \ ^ {} |


4.定位符

定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界。

^ :匹配输入字符串开始的位置。

$ :    匹配输入字符串结尾的位置。

/^[1-9][0-9]{0,1}$/    例: 01/false  11/true   123/false

\b : 匹配一个字边界,即字与空格间的位置。

/\bCha/  例:Chase /true  cd /false /头边界

/Cha\b/  例:haCha /true  hacha/false 尾边界

\B : 非字边界匹配。


5.贪婪/非贪婪 匹配

*、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

var str = `<H1>Chapter 1 - 介绍正则表达式</H1>`;

贪婪:下面的表达式匹配从开始小于符号 (<) 到关闭 H1 标记的大于符号 (>) 之间的所有内容。

var reg = /<.*>/   (贪婪匹配)

str.match(reg)[0] // <H1>Chapter 1 - 介绍正则表达式</H1>

var reg1 = /<.*?>/ (非贪婪匹配)

str.match(reg1)[0] // <H1>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式