文字列の不要な部分をカットし、残りの部分を残すスクリプトを作成しています。奇妙な問題があります-作成した正規表現は文字列に一致しますが、考えられるすべての兆候には一致しません。
テストされた文字列:
$itemFullName = "10-16X4 POLI MG SELF START BLK PLASTIC";
私が持っている「パターン」:
POLI MG FT SDS BLK ZC
PHP コード:
if(preg_match("@(POLI){1}(.)+(BLK)@", $itemFullName))
{
$itemAttributes = preg_replace("@(POLI){1}(.)+(BLK)@", "#", $itemFullName);
}
最後に $itemAttributes が次のように設定されます。
"10-16X4 #K PLASTIC".
正規表現が [POLI MG SELF START BL]K 部分のみをキャッチし、全体の一致POLI MG SELF START BLKではなく "#" に変更して置き換えたように見えます。
どうすれば修正できますか?