我试图在PHP中用一个字符串中的一个管道替换一个或多个管道。以下尝试无效:
$string = preg_replace('/\|+/', '|', $string);
以下是输入和所需输出的示例:
输入
only | 1494 | | | | | | Limit: None | | Enr: 22 | | | | | | | | |RE
所需输出
only | 1494 | Limit: None | Enr: 22 | RE
提前感谢您解决这个问题。
答案 0 :(得分:1)
您可以使用模式\s*
来匹配空格。
此代码可以满足您的需求:
<?php
$text = 'only | 1494 | | | | | | Limit: None | | Enr: 22 | | | | | | | | |RE';
$string = preg_replace('/(\|\s*)+/', '| ', $text);
assert($string === 'only | 1494 | Limit: None | Enr: 22 | RE');