正则表达式

1、什么是正则表达式:

能让计算机读懂的字符串匹配规则

2、正则表达式的写法:

var re=new RegExp('规则', '可选参数');

var re=/规则/参数;

3、规则中的字符

1)普通字符匹配:

如:/a/  匹配字符 ‘a’,/a,b/  匹配字符 ‘a,b’

2)转义字符匹配:

\d   匹配一个数字,即0-9

\D   匹配一个非数字,即除了0-9

\w   匹配一个单词字符(字母、数字、下划线)

\W   匹配任何非单词字符。等价于[^A-Za-z0-9_]

\s   匹配一个空白符

\S   匹配一个非空白符

\b   匹配单词边界

\B   匹配非单词边界

.    匹配一个任意字符,除了换行符‘\n’和回车符‘\r’

\1   重复子项

4、量词:对左边的匹配字符定义个数

? 出现零次或一次(最多出现一次),或指明一个非贪婪限定符

+ 出现一次或多次(至少出现一次)

* 出现零次或多次(任意次)

{n} 出现n次

{n,m} 出现n到m次

{n,} 至少出现n次

5、任意一个或者范围

[abc123] : 匹配‘abc123’中的任意一个字符

[a-z0-9] : 匹配a到z或者0到9中的任意一个字符

6、限制开头结尾

^  以紧挨的元素开头

$  以紧挨的元素结尾

7、修饰参数:

g: global,全文搜索,默认搜索到第一个结果接停止

i: ingore case,忽略大小写,默认大小写敏感

m: multiple lines,

多行搜索

(更改^ 和$的含义,使它们分别在任意一行对待行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配)

8、常用函数

test

用法:正则.test(字符串)  匹配成功,就返回真,否则就返回假

search

用法:字符串.search(正则)  匹配成功,返回位置,否则返回-1

match

用法: 字符串.match(正则);匹配成功,就返回匹配成功的数组,否则就返回null

replace

用法:字符串.replace(正则,新的字符串) 匹配成功的字符去替换新的字符

正则默认规则

匹配成功就结束,不会继续匹配,区分大小写

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

例如,您可能搜索 HTML 文档,以查找括在 H1 标记内的章节标题。该文本在您的文档中如下:

Chapter 1 - 介绍正则表达式

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

/<.*>/

非贪婪:如果您只需要匹配开始和结束 H1 标签,下面的非贪婪表达式只匹配

/<.*?>/

如果只想匹配开始的 H1 标签,表达式则是:

/<\w+?>/

通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配

你可能感兴趣的:(正则表达式)