我有一个像这样的字符串=> 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 什么是取代它的确切公式?
答案 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";
}
这假设您要匹配行的开头或>
后面的所有大写字母数字字符。如果那不是你想要的,请在你的问题中澄清。