Preg_replace':和数字'

时间:2018-08-22 11:04:10

标签: php regex preg-replace

我遇到以下问题。

在Wordpress中,我正在网站上输出类别。在此输出中,它们给出以下值:

Category:1

现在,我有以下代码删除了该代码:

$resultx = " " . rgar( $entry, '49' ) ."";
$resultx_ = preg_replace('/\d/' , '', $resultx );

但是当我添加以下规则时:

$resultx_ = preg_replace('/:/' , '', $resultx );    

它将删除:并离开1

有人知道如何解决吗?

2 个答案:

答案 0 :(得分:1)

如果您只想去除最后的冒号和数字,请使用以下命令:

$resultx = "Category:1";
$resultx = preg_replace('/:\d*$/' , '', $resultx );
echo $resultx;

Category

答案 1 :(得分:1)

第二个_调用的草堆上的preg_replace丢失了,因此您返回到原始字符串并绕过了数字替换。要纠正此问题,请执行以下操作:

$resultx = 'Category:1';
$resultx_ = preg_replace('/\d/' , '', $resultx);
$resultx_ = preg_replace('/:/' , '', $resultx_);

但是您可以在一个正则表达式中进行:和数字替换:

$resultx_ = preg_replace('/[:\d]*/' , '', $resultx);

您还可以将数字和冒号替换为str_replace

$resultx_ = str_replace(array_merge(range(0,9), array(':')), '', $resultx);

rtrim(如果您只希望从头开始替换它们)。

$resultx_ = rtrim($resultx, implode(range(0,9)) . ':');

如果模式正好是:,则使用above正则表达式进行编号。