2 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
由于您的原始字符串已經(jīng)格式化并且此格式是已知的,因此您無需使用正則表達(dá)式模式來探索它,您可以通過簡(jiǎn)單的替換來完成:
$s = <<<'EOD'
bj-11_2008-06_2015(F01,F02,F03,F04)
bj-11_2008-06_2015(F01)
bj-11_2008-06_2015(01)
bj-11_2008-06_2015(3B)
bj-11_2008-06_2015
bj-11_2008
EOD;
$trans = [ 'bj-' => '', '_' => '|', '-' => ' - ', '(' => ' (',
',' => ';' ];
echo strtr($s, $trans);

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
沒有任何正則表達(dá)式,僅使用一些子字符串:
$input='bj-11_2008-06_2015(F01,F02,F03,F04)';
$s1=$s2=$s3='';
$sub = substr($input,3,7); // => 11_2008
$s1 = str_replace('_','|',$sub); // => 11|2008
$sub = substr($input,11,7); // => 06_2015
if($sub !== false){
$s2 = ' - '.str_replace('_','|',$sub); // => - 06|2015
}
$sub = substr($input,18); // => (F01,F02,F03,F04)
if($sub !== false){
$s3 = str_replace(',',';',$sub); // => (F01;F02;F03;F04)
}
$result = $s1.$s2.$s3; // => 11|2008 - 06|2015 (F01;F02;F03;F04)
- 2 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)