I try to get the GOSTs from the $result_text
variable when I store a short string in the variable that includes some GOST, preg_match_all finds. And I get an array of one element. But when I write a bigger line, as in the code below, I don’t find any entries at all. Tell me what's wrong here?
$result_text = "ГОСТ 2.301-68 ЕСКД. Форматы;о наследия (памятниках истории и культуры) народов ГОСТ 34.201-89. Информационная технология. Комплекс стандартов на автоматизированные системы. Виды, комплектность и обозначение документов при создании автоматизированных систем; ГОСТ 34.003-90 Информационная технология. Комплекс стандартов на автоматизированные системы. Термины и определения; ГОСТ 34.601-90 Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания; ГОСТ 34.603-92 Информационная технология. Виды испытаний автоматизированных систем;РД 50-34.698-90. Методические указания. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Требования к содержанию документов; "; $result_text = explode("ГОСТ", $result_text); for ($i=0;$i<count($result_text);$i++){ $aaa = 'ГОСТ'.$result_text[$i]; echo $aaa.'<hr><br>'; if (preg_match_all("/ГОСТ.d{1,10}.d{1,10}.d{1,10}/i",$aaa,$matches)) { var_dump($matches); echo '<hr>'; } else echo "NO<hr>"; }
\d
, notd
. Tryif (preg_match_all('~ГОСТ\s*\d+\.\d+-\d+~iu', $result_text, $res)) { print_r($res[0]); }
if (preg_match_all('~ГОСТ\s*\d+\.\d+-\d+~iu', $result_text, $res)) { print_r($res[0]); }
. See the demo . - Wiktor Stribiżew pm