gpt4 book ai didi

PHP:用硬分隔符替换数字之间空格的正则表达式

转载 作者:行者123 更新时间:2023-12-04 00:31:15 24 4
gpt4 key购买 nike

我想创建一个正则表达式,根据我所在国家/地区的排版规则,将普通空格替换为难以破解的空格。它不应该触及 HTML 标签。

这些示例中的所有空格都应该是硬中断的:

数字

1 000
10 000
100 000
1 000 000
etc..

日期

17. 6.
17. 6. 2012

我想到了:

$pattern = '/((\d\.?)\s(\d))(?=[^>]*(<|$))/';
$text = preg_replace($pattern, '$2&nbsp;$3', $text);

它可以做所有这些,但是:2012年17月6日它不会替换第二个空格,所以结果是 ->

17.&nbsp;6. 2012

感谢您的帮助!

最佳答案

我猜第二个空格不匹配,因为它前面的数字已经被第一个匹配消耗了。

我会使用 lookbehind 而不是匹配它,像这样:

$pattern = '/(?<=\d)(\.?)\s(\d)(?=[^>]*?(<|$))/';
$text = preg_replace($pattern, '$1&nbsp;$2', $text);

点在后视之外,因为后视必须有指定的长度。

希望这对您有所帮助。

关于PHP:用硬分隔符替换数字之间空格的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11072161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com