正则表达式

1、什么是贪婪模式和非贪婪模式?

先看一个例子:```

var str = 'my "name" is "chen" nice to meet you';

str.match(/".*"/g);

str.match(/".*?"/g)

```

贪婪模式:在进行正则匹配时,在满足匹配条件的前提下尽可能多的去匹配元素,这种匹配模式叫贪婪模式,默认情况下匹配模式为贪婪模式;如上述str.match(/.*/g)即贪婪模式去匹配,匹配结果为"name" is "chen"";

非贪婪模式:在满足匹配条件的前提下,尽可能少的去匹配元素,即非贪婪模式,可以通过在表示匹配次数的表达式后面加上?来将正则匹配类型设置成非贪婪模式,如上述str.match(/".*?"/g)即为非贪婪模式,匹配的结果为["name","chen"]。

2、\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?

\d 表示数字字符,即0~9中间的任意一个字符;

\w 表示单词字符,包括大小写字母,数字和下划线;

\s 表示空格;

[a-zA-Z0-9] 表示a-zA-Z0-9之间的任意一个字符;

\b 单词边界,即空格、换行、回车、制表符、-等,

.  除回车和换行之外任意字符,

* 元素出现任意次,+ 元素出现一次或多次,? 元素出现0次或1次,x{3} x元素出现3次,

^ 在中括号中表示取反,如[^abcd123]表示不为abcd123中的任意一个字符,^在其他地方表示以什么开头,如:/^(hello)/g 表示匹配以hello开头的元素;

$  表示以什么为结尾。

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