bt36备用网址|bt36体育在线|bt36备用welcome!!

当前位置: 主页 > bt36备用 >

js正则表达式(.+)和(.+?) (.*)和(.*?)的区别

时间:2020-06-28 20:16来源:原创 作者:admin 点击:
(.+)默认是贪婪匹配 (.+?)为惰性匹配 疑问号让.+的搜索模式从贪婪模式变成惰性模式。 var str='aaa 123456 bbb' 会匹配 会匹配 123456 要在浏览器测试结果的话,输入: var str='aaa 123456 bbb' str.ma

  (.+)默认是贪婪匹配

  (.+?)为惰性匹配

  疑问号让.+的搜索模式从贪婪模式变成惰性模式。

  var str='aaa

123456
bbb'

  <.+?>会匹配

  <.+>会匹配

123456

  要在浏览器测试结果的话,输入:

  var str='aaa

123456
bbb'

  str.match(/<.+?>/);

  str.match(/<.+>/);

  下面举个简单的例子来说明。

  1.贪婪匹配是先看整个字符串是否匹配,如果不匹配,它会去掉字符串的最后一个字符,并再次尝试。如果还不匹配,那么再去掉当前最后一个,直到发现匹配或不剩任何字符。

  var str='abcdabceba'

  /.+b/ //匹配一个或多个任意字符后面跟一个字母b

  执行str.match(/.+b/)

  第一次(先看整个字符串是否是一个匹配) abcdabceba 不匹配,然后去掉最后一个字符a

  第二次(去掉最后一个字符后再匹配) abcdabceb 匹配,返回abcdabceb。

  2.惰性匹配是从左侧第一个字符开始向右匹配, 先看第一个字符是不是一个匹配, 如果不匹配就加入下一个字符再尝式匹配, 直到发现匹配...

  执行str.match(/.+?b/)

  第一次(读入左侧第一个字符) a 不匹配加一个再式

  第二次 ab 匹配,返回ab

  当正则表达式中包含重复量词(如:*,?,+)时,通常的行为是匹配尽可能多的字符,比如:a(.*)b去匹配aabab字符串,它会匹配整个字符串,这被称为贪婪匹配。

  $str='aabab';

  preg_match("/a(.*)b/", $str, $matches);

  print_r($matches);

  有的时候我们需要懒惰匹配,也就是匹配尽可能少的字符,在量词后边加一个问号?,比如(.*?)在能使整个匹配成功的前提下使用最少的重复。

  $str='aabab';

  preg_match("/a(.*?)b/", $str, $matches);

  print_r($matches);

  打 赏

  JS代码在前面加上以下HTML源代码

  

  

  动态页:http://m.bingdou.net/e/action/ListInfo/?classid=[!--self.classid--]

  静态页:http://m.ppqq.net

  动态页:http://m.bingdou.net/e/action/ShowInfo.php?classid=[!--classid--]&id=[!--id--] (责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表