1

UI を介して生成された次の文字列を操作しますが、可能なバリアントを示すために 2 回表示されます。

$string = 'The quick brown fox jumped over the LE300 tractor';

また

$string = 'The quick brown fox jumped over the LE 300 tractor';

また

$string = 'The quick brown fox jumped over the 300 series tractor';

LE300、LE 300、または 300 のみを抽出したいと考えています (訪問者が LE に入っていないと仮定します)。

そのため、これらのビットを引き出すために preg_match() を作成しました。

次のコードでは、LE300 または LE 300 を抽出できますが、300 だけではありません。

preg_match('/(?<=\s|^)[a-zA-Z]{1,3} ?\d\d\d? ?[a-zA-Z]{0,1}? (?=\s|$)/', $string, $matches);

私はもう試した;

preg_match('/(?<=\s|^)[a-zA-Z]{1,3} ?\d\d\d? ?[a-zA-Z]{0,1}? ?| [0-9]{2,3} (?=\s|$)/', $Title, $matches);

preg_match('/(?<=\s|^)[a-zA-Z]{1,3} ?\d\d\d? ?[a-zA-Z]{0,1}? ?| \d\d\d? (?=\s|$)/', $Title, $matches); 

しかし、私が何をしても、それ自体で立っている2桁または3桁の数字を抽出することはできません.

誰かがこれを修正する方法についてアイデアを持っている場合は、私と共有していただければ幸いです

4

2 に答える 2

0

文字列の残りの部分が一定の場合、非常に単純になります。

preg_match('/The quick brown fox jumped over the (.*) tractor/', $string1, $matches);
于 2013-11-12T04:23:55.457 に答える