使用preg替换

时间:2016-05-18 04:11:47

标签: php preg-replace

我有一个像这样的字符串=> BGCOS1> BGSNB1(190MB)_BGSNB1> BGDBH1(180MB)_BGDBH1。  我希望它像这样=>使用preg_replace的BGCOS1> BGSNB1> BGDBH1(替换"(190MB)_BGSNB1")。为此,我使用:

$A = preg_replace('/\(\d+\w+\)\_\w+/', '', $B);

但它返回给我这个值:BGCOS1> BGSNB1_BGSNB1> BGDBH1_BGDBH1 什么是取代它的确切公式?

1 个答案:

答案 0 :(得分:0)

由于我的正则表达式能力不强,我会使用preg_match_all()代替preg_replace(),然后将结果重新打包在一起:

$subject = "BGCOS1>BGSNB1(190MB)_BGSNB1>BGDBH1(180MB)_BGDBH1";
$pattern = '~(^|>)([A-Z0-9]+)~';
preg_match_all($pattern, $subject, $matches);

if (isset($matches[2])) {
    echo implode('>', $matches[2]);
}
else {
    echo "Regex didn't match anything";
}

这假设您要匹配行的开头或>后面的所有大写字母数字字符。如果那不是你想要的,请在你的问题中澄清。