我有以下代码
$cities = preg_replace(
'/^\\d*\\n(.*)\\n([^\\d].*|)/m',
'\\item \\textbf{$1} -- $2',
$_POST['cities']
);
$_POST['cities']
has this value。
$cities
与我本地计算机上的$_POST['cities']
相同,并且没有替换完成。
我通过Xampp运行PHP 5.5.9。
我通过以下服务测试了代码和正则表达式,所有这些都告诉我它应该有效:
Functions online (no direct link)
$count
为0,显然它不匹配,但是上面的来源应该足以证明它应该。
编辑:代码不会处理更小,更小的字符串(由两个匹配组成)。
答案 0 :(得分:0)
似乎问题是我的测试服务器运行的是Windows,而我在Linux上习惯了Regex。 Windows会按\r\n
而不仅仅\n
匹配换行符,因此我将所有\n
更改为\r?\n
以获得可移植性,从而解决了问题。
编辑:我现在正在使用\ {,如@je-suis-charlie所建议。
我会在两天内接受这个答案。