正则表达式

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开头的元素;

$  表示以什么为结尾。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 7,161评论 0 99
  • python的re模块--细说正则表达式 可能是东半球最详细最全面的re教程,翻译自官方文档,因为官方文档写的是真...
    立而人阅读 22,998评论 4 46
  • 正则表达式、re模块、匹配单个字符、匹配多个字符、匹配开头结尾、匹配分组、re模块的高级用法、python贪婪和非...
    Cestine阅读 1,535评论 0 1
  • 9.19--9.23 第7章 正则表达式 正则表达式是一个拆分字符串并查询相关信息的过程。 推荐练习网站: js ...
    如201608阅读 1,071评论 0 4
  • 这周西安出行,恰逢冬天,从机场出来,一路上看到树木的叶子已经掉光,只剩光秃秃的树干。偶尔会有几棵苍翠的松柏,为这苍...
    Hello_beauty阅读 449评论 3 5