猿问

正则表达式中量词*?同时出现时的匹配规则是什么?

背景描述:

现有一个json字符串:

{{"name":"frank"},{"age":22},{"sex":"man"}}

需要匹配出{"name":"frank"}{"age":22}格式的内容;

当我的正则表达式为:

\{".*\}

匹配出的内容如下:

{"name":"frank"},{"age":22},{"sex":"man"},{"age2":22}}

我对正则略做修改为:

\{".*?\}

则可以匹配出正确的内容;

疑问:

  1. .* 能否理解为匹配除了换行符以外的任意字符并且不限字符数量?

  2. .*后面紧跟一个?时要怎么理解?

  3. 能不能理解为.*重复0次或1次?

  4. 如果1、3没有错误的话,*本身就代表了不限次数,.*可以一直匹配到字符串换行,跟上?以后的匹配规则是什么呢?


婷婷同学_
浏览 397回答 2
2回答

猛跑小猪

.* 除换行符之外的任意单字符.*后跟?为非贪婪模式匹配贪婪模式:正则的默认模式,即:满足条件直到结束。如字符:1111,如正则贪婪匹配1,则结果是1111非贪婪模式:满足条件(首次)即结束。如字符:1111,如正则非贪婪匹配1,则结果是1.* 为匹配0次或1次或多次;.+ 为匹配一次或多次;.? 为匹配0次或1次请理解.*? 和 .? 的区别,区别请结合第2、3点
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答