我厌倦了害怕正则表达式。这篇文章的主题仅限于正则表达式的 PHP 实现,但是,任何通用正则表达式建议显然都会受到赞赏(即不要将我与不适用于 PHP 的范围混淆)。
以下(我相信)将删除数字之间的任何空格。也许有更好的方法可以做到这一点,但我仍然想了解发生了什么。
$pat="/\b(\d+)\s+(?=\d+\b)/";
$sub="123 345";
$string=preg_replace($pat, "$1", $sub);
通过模式,我的解释是:
\b
一个词的边界\d+
1 个或多个数字的子模式\s+
一个或多个空格(?=\d+\b)
一个或多个数字后跟单词边界的前瞻断言?- 把它们放在一起,搜索任何单词边界,后跟一个或多个数字,然后是一些空格,然后对其进行某种前瞻断言,并将结果保存在 $1 中以便它可以替换模式?
问题:
- 我的上述解释正确吗?
- 那个前瞻断言到底是关于什么的?
- 前导
/
和尾随的目的是什么/
?