定期使用(GT)……提高固化组的效率,提高效率。
具体地说,使用……(>……匹配和正常匹配之间没有区别,但是如果在这个结构之后进行匹配(即在关闭括号之后),则该结构中的所有备用状态都将被放弃。换句话说,在固化的包匹配的结束,它已经匹配的文本已凝固成只能保留或放弃作为一个整体,一个单位,不在括号中尝试备用状态了,所以回溯决不会选择国家(至少在结构匹配完成后,国家锁定在它)。
例子:
例如,要处理一些数据,原来的格式是123.456,后来因为浮点显示问题,部分数据格式变成了123.456000000789,而只需要十进制数为2-3,但最后一个不是0,规则是怎么写的(直接考虑小数点后面的数字),在我们写正则化后,我们将使用这个规则来匹配数据,并将原始数据替换为匹配结果。
普通人,
复制代码代码如下所示:
$str = preg_replace(。(千年1-9)*、1、$ STR);
1 / /反向引用匹配结果
显然,这种格式已经被处理为123.456的某些数据格式。为了提高效率,我们需要处理这个规则,从123.456个字符串到另一个字符串的比较,我们发现这个数据后面没有123.456个数字,所以它是用白色完成的,这很容易做到。我们转换这个规则,将量词变为+,这样1, 2个数字在123.45个小数点之后不会被处理,三个或更多数字的处理是正常的。它的PHP代码是
常规的两,
复制代码代码如下所示:
$str = preg_replace(。(千年1-9)+、1、$ STR);
嗯,这种规律真的可以吗现在,让我们来分析这个正则匹配过程。
字符串123.456
首先(小数点前123位没有说)。
{ },然后匹配6 以成功,然后控制。结果发现,在1-9后面没有字符。它们大多遵循后进先出规则,回到最后一个匹配点。在那时,{ { } } }将返回匹配字符6,并且{ } }将成功。匹配完成。发现{匹配的结果}实际上是45,那么,我们应该怎么做呢在没有回溯的情况下,匹配是否成功这就是我们所说的治疗组。PHP中正则引擎(preg_replace功能)支持治疗包。根据固化分组的编写方法,可以将代码更改为以下方式。
规则三,
复制代码代码如下所示:
$str = preg_replace(。(d({ 1-9行})、1、$ STR);
这样,字符串123.456不符合要求,不会匹配,那么我们就可以达到我们的要求。
那么,让我们来看看((d))。
凝固的包内,量词的效果很好,所以如果{ 1-9 }不匹配,正则表达式返回的保留剩余的状态。然后比赛打破了包和走向 D 。在这种情况下,当控制电叶片固化分组,没有备用状态放弃(因为没有备用状态是在固化分组设置)。
如果{ } }可以匹配并匹配固化包,则保存状态仍然存在,但由于它属于固化组的末端,所以将被放弃。
当你与625或625000。在后一种情况下,放弃那些States不会引起任何麻烦,因为 D +匹配。625000,在正则表达式匹配已经完成。但是。625,因为D +不能匹配,正则引擎需要追溯,但回溯不能做,因为待机状态不再存在,因为没有可以追溯到备用状态,整个比赛会失败,' 625 '不需要处理,这就是我们期待。