从字符串中删除word +通配符号

时间:2010-04-28 01:26:38

标签: php

我有一个

的字符串
$str = "testingSUB1";

如何从字符串中删除SUB*?我假设使用preg_replace,但我并不擅长匹配我想要的正则表达式。

有谁知道我该怎么做?

谢谢

2 个答案:

答案 0 :(得分:3)

就是这样。

$str = preg_replace("#SUB[0-9]+#", "", $str);

#是分隔符;它们可以是未出现在模式中的任何非字母数字/空格/反斜杠字符。 [0-9]表示任何数字(您也可以在某些语言中使用\d,但我通常不会打扰),而+表示之前的一个或多个,所以如果你采取+它只会替换第一个数字

答案 1 :(得分:2)

这应该这样做:

$word = 'SUB';
$string = 'testingSUB1';

echo preg_replace('~^(.*?)(' . preg_quote($word, '~') . '\d+)(.*?)$~', '$1$2', $string);

编辑 - 这样更好:

echo preg_replace('~' . preg_quote($word, '~') . '\d+~', '', $string);