为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕婉清6462132 2019-03-23 11:48:58
背景描述:现有一个json字符串:{{"name":"frank"},{"age":22},{"sex":"man"}}需要匹配出{"name":"frank"}、{"age":22}格式的内容;当我的正则表达式为:\{".*\}匹配出的内容如下:{"name":"frank"},{"age":22},{"sex":"man"},{"age2":22}}我对正则略做修改为:\{".*?\}则可以匹配出正确的内容;疑问:.* 能否理解为匹配除了换行符以外的任意字符并且不限字符数量?当.*后面紧跟一个?时要怎么理解?能不能理解为.*重复0次或1次?如果1、3没有错误的话,*本身就代表了不限次数,.*可以一直匹配到字符串换行,跟上?以后的匹配规则是什么呢?
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

  1. .* 除换行符之外的任意单字符

  2. .*后跟?为非贪婪模式匹配

    1. 贪婪模式:正则的默认模式,即:满足条件直到结束。如字符:1111,如正则贪婪匹配1,则结果是1111

    2. 非贪婪模式:满足条件(首次)即结束。如字符:1111,如正则非贪婪匹配1,则结果是1

  3. .* 为匹配0次或1次或多次;.+ 为匹配一次或多次;.? 为匹配0次或1次

  4. 请理解.*? 和 .? 的区别,区别请结合第2、3点


查看完整回答
反对 回复 2019-03-23
  • 2 回答
  • 0 关注
  • 863 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信