Preg_replace ': 和数字'

Preg_replace ': and numbers'

我遇到了以下问题。

在 Wordpress 中,我正在输出网站上的类别。在这个输出中,他们给出了以下值:

Category:1

现在我有以下代码删除了一个:

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

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

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

它删除 : 并保留 1

有人知道怎么解决吗?

如果你只想去掉最后的冒号和数字,那么使用这个:

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

Category

第二个 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)) . ':');

如果模式正好是 :,则使用 正则表达式。