我有一个
的字符串$str = "testingSUB1";
如何从字符串中删除SUB*
?我假设使用preg_replace
,但我并不擅长匹配我想要的正则表达式。
有谁知道我该怎么做?
谢谢
答案 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);