龙空技术网

通俗易懂的理解正则表达式中的贪婪和懒惰模式

沪漂码农小邹 452

前言:

现时同学们对“java正则表达式贪婪非贪婪”大致比较注重,小伙伴们都需要分析一些“java正则表达式贪婪非贪婪”的相关内容。那么小编也在网上收集了一些有关“java正则表达式贪婪非贪婪””的相关知识,希望大家能喜欢,各位老铁们快快来了解一下吧!

简单来说,如何正确区分贪婪和懒惰模式,主要看表达式中+和?的使用,正则表达式中每个元字符匹配一个字符,当使用+之后将会变的贪婪,它将匹配尽可能多的字符,但使用问号?字符时,它将尽可能少的匹配字符,既是懒惰模式。

贪婪模式:在可匹配与可不匹配的时候,优先匹配

//下面的\d表示匹配数字$p = '/\d+\-\d+/';$str = "我的电话是010-12345678";preg_match($p, $str, $match);echo $match[0]; //结果为:010-12345678

懒惰模式:在可匹配与可不匹配的时候,优先不匹配

$p = '/\d?\-\d?/';$str = "我的电话是010-12345678";preg_match($p, $str, $match);echo $match[0]; //结果为:0-1$p = '/\d{3}\-\d{8}/';$str = "我的电话是010-12345678";preg_match($p, $str, $match);echo $match[0]; //结果为:010-12345678

标签: #java正则表达式贪婪非贪婪