我正在尝试使用替换字符串中的一些文本preg_replace
。现在,也许我没有正确执行它,但是运行一次它并没有起到作用,因为我试图替换重叠的字符串。现在,当我运行preg_replace
一次时,它工作正常(减去只有一半的文本是我想要的方式)。当我尝试运行它两次时,我在 Chrome 和 IE 中都遇到了错误的连接错误(所以这不是浏览器问题,不是我想的那样)至少对于 WAMP(我还没有在真正的服务器)。
那么,是否有问题:
1)我的PHP逻辑,
2)我的正则表达式,
3) 还是 preg_replace 和 WAMP?
我想分隔(在之间放置空格)具有以下格式的所有数字:0.xx
$text = "0.450.590.88 AUT 0.570.210.400.89 CUS 0.630.310.370.440.87 DEL 0.580.130.310.570.450.89 EVA 0.600.230.420.550.440.650.91 INT 0.590.390.620.530.540.520.560.85 IOP 0.480.240.440.440.440.550.580.600.88 MON 0.690.390.480.560.640.610.610.550.520.85";
for ($i=0;$i<2;$i++)
$text = preg_replace('#0\.(\d{1,4})0\.#', '0.${1} 0.', $text);
我希望 $text 导致:
0.45 0.59 0.88 AUT 0.57 0.21 0.40 0.89 CUS 0.63 0.31 0.37 0.44 0.87 DEL 0.58 0.13 0.31 0.57 0.45 0.89 EVA 0.60 0.23 0.42 0.55 0.44 0.65 0.91 INT 0.59 0.39 0.62 0.53 0.54 0.52 0.56 0.85 IOP 0.48 0.24 0.44 0.44 0.44 0.55 0.58 0.60 0.88 MON 0.69 0.39 0.48 0.56 0.64 0.61 0.61 0.55 0.52 0.85
如果我将循环更改为运行一次或缩短文本,PHP 运行得很好。
由于这是较大文本的一部分,我不想将它们粘贴到数组中,我只是希望它们的格式更好。作为背景信息,此文本来自 PDF 中已提取文本的相关表,但未保留空白。