1

次のような架空の文字列を操作します。

$string = 'Ford : LTD 1988 Ford Station Wagon with HP 351 H Engine and Performance Transmission';

rexexp または preg_match (どちらが良いかわかりません) を使用して、その文字列から一連の文字と数字 ("HP 351 H") を抽出し、別の変数 (例: $EngineSize) で使用するにはどうすればよいですか?

上記は架空の例です。UI から文字と数字を抽出しようとしていることを明確にしようとしています。

注: これは UI からのものであるため、エンジンのサイズは文字列内の任意の場所に配置でき、形式はスペースの有無にかかわらず、末尾に文字がある場合とない場合があり、モデルが 2 の場合もあります。または 3 文字 (つまり、LE、LT、LTD など) およびエンジンのサイズは、2 ~ 3 桁の数字で、その後に 2 ~ 3 文字が続く可能性があります)。

このデータを取得するための式の書き方を示して、どちらが優れているか (regexp または preg_match) を説明してくれる人がいれば、私は非常に感謝しています。事前に感謝します。

4

1 に答える 1

2

次の正規表現は、説明したものと正確に一致しますが、誤検知の可能性が高くなります。

/(?<=\s|^)[a-zA-Z]{2,3} ?\d\d\d? ?[a-zA-Z]{1,3}?(?=\s|$)/
于 2013-11-08T14:50:13.727 に答える