PHP Regex只用1个管道查找和替换一个或多个管道的字符串

时间:2015-08-22 00:43:30

标签: php regex

我试图在PHP中用一个字符串中的一个管道替换一个或多个管道。以下尝试无效:

$string = preg_replace('/\|+/', '|', $string);

以下是输入和所需输出的示例:

输入

only | 1494 | | | | | | Limit: None | | Enr: 22 | | | | | | | | |RE

所需输出

only | 1494 | Limit: None | Enr: 22 | RE

提前感谢您解决这个问题。

1 个答案:

答案 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');