2016-10-20 11 views
1

プロジェクトの名前を含む$nameという変数があります。ほとんどの場合、名前は次の形式文字列の特定の箇所を削除します

OCT16: Some Project 

を取るしかし、それは時々、それは月/年のプレフィックスを持っていない、この形式では、常にではありません。

私がしようとしているのはこれです。接頭辞がMMMYYの場合:この部分を名前から削除する必要があります。今私はおそらくpreg_replaceのようなものを使用してこの特定のパターンを文字列から削除することができますが、最初にこのパターンがあることを確認するにはどうすればよいですか?

アドバイスありがとうございます。

おかげ

+0

は 'にpreg_replace( '〜\ dの{6} $〜'、 ''、$ sの)'文字列の末尾6桁の数字を削除するを使用してみてください。 –

+0

私が述べたように、必ずしもこのように始まるとは限りませんので、最初にチェックする必要があります –

+3

置き換え前に 'preg_replace'もチェックを実行するのはなぜですか?一致しない場合、 'preg_replace'は変更されていない文字列を返します。 –

答えて

2

は、次のアプローチを使用します。

$project_name = 'OCT16: Some Project'; 
$project_name = preg_replace("/\b[A-Z]{3,4}\d{2}:\s?/u", "", $project_name); 

print_r($project_name); // "Some Project" 

// another test case: 
$project_name = ' Some Project OCT16: some text'; 
.... 
print_r($project_name); // "Some Project some text" 
2

あなたの正規表現は、実際には、次のようになります。それが一致するものを見つけることができなかった場合

(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\d{2}:\s? 

preg_replaceだけで元の文字列を返します。

関連する問題