0

次のような配列があります。

$array[] = 'MT0001ENG Apricot, dried';
$array[] = 'MT0001SYS Prunus armeniaca L.';
$array[] = 'MT0001YLD 0';
$array[] = 'MT0001MGR 06';
$array[] = 'MT0001SGR 20';
$array[] = 'MT0001NCF 6.25';
$array[] = 'MT0001FCF 0.800';
$array[] = 'MT0001000 1159                          00050';
$array[] = 'MT0001001 2.9         2.6   3.5   4     05165';
$array[] = 'MT0001002 0.1         0.1   0.1   4     00050';
$array[] = 'MT0003ENG Pineapple, raw';
$array[] = 'MT0003SYS Ananas comosus (L.) Merr.';
$array[] = 'MT0003YLD 47';
$array[] = 'MT0003MGR 06';
$array[] = 'MT0003SGR 40';
$array[] = 'MT0003NCF 6.25';
$array[] = 'MT0003FCF 0.800';
$array[] = 'MT0003000 232                           00050';
$array[] = 'MT0003001 0.5         0.5   0.6   4     05165';
$array[] = 'MT0003002 0.1         0.1   0.1   4     00050';

名前を含むすべての行を、次のように $names という配列に入れています。

$names = preg_grep("/ENG/", $array);

しかし今、タンパク質情報を含むすべての行を $ protein という配列に入れたいと思います。タンパク質ラインの例は次のとおりです。

$array[] = 'MT0001001 2.9         2.6   3.5   4     05165';
$array[] = 'MT0003001 0.5         0.5   0.6   4     05165';

ご覧のとおり、パターンがあります。すべての行は MT で始まります。その後に 4 桁の製品番号が続きます。3文字が続き、タンパク質の場合、それらは001です:)

私は次のことを試しましたが、運がありません!

$proteins = preg_grep("/MT{4}[0-9]001/", $array);
4

1 に答える 1

1
$names = preg_grep("/MT\d{4}001.*/", $array);

「MT」の後に 4 桁の数字が続き、その後に「001」が続き、その後に 0 個以上の任意の文字が続くものと一致します

RegExr のようなツールを使用すると、これを少し簡単に試すことができます。例のリンクを次に示します: http://regexr.com?30irf

于 2012-04-07T14:55:37.200 に答える