我正在尝试用 PHP 中的字符串中的一个管道替换一个或多个管道。以下尝试不起作用:
$string = preg_replace('/\|+/', '|', $string);
这是输入和所需输出的示例:
输入
only | 1494 | | | | | | Limit: None | | Enr: 22 | | | | | | | | |RE
所需输出
only | 1494 | Limit: None | Enr: 22 | RE
提前感谢您解决了这个令人头痛的问题。
最佳答案
您可以使用模式 \s*
来匹配空格。
此代码执行您想要的操作:
<?php
$text = 'only | 1494 | | | | | | Limit: None | | Enr: 22 | | | | | | | | |RE';
$string = preg_replace('/(\|\s*)+/', '| ', $text);
assert($string === 'only | 1494 | Limit: None | Enr: 22 | RE');
关于PHP 正则表达式查找并用 1 个管道替换 1 个或多个管道的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151159/