Пытаюсь достать из переменной $result_text
ГОСТы, когда в переменной храню короткую строку в которую включён какой нибудь ГОСТ, preg_match_all находит. И я получаю массив из одного элемента. Но когда я пишу строку побольше, как в коде ниже, то вхождений вообще не нахожу. Подскажите, что здесь не так?
$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>";
}
Используйте preg_match_all
напрямую со следующим регулярным выражением:
'~ГОСТ\s*\d+\.\d+-\d+~iu'
См. пример работы регулярного выражения.
Подробности
ГОСТ
- строка ГОСТ
\s*
- 0 и более пробельных символов\d+
- 1 и более цифр\.
- символ точки\d+
- 1 и более цифр-
- дефис\d+
- 1 и более цифр.PHP:
if (preg_match_all('~ГОСТ\s*\d+\.\d+-\d+~iu', $result_text, $res)) {
print_r($res[0]);
}
// => Array ( [0] => ГОСТ 2.301-68 [1] => ГОСТ 34.201-89 [2] => ГОСТ 34.003-90 [3] => ГОСТ 34.601-90 [4] => ГОСТ 34.603-92 )
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть две таблицыВ одной таблице id пользователей, в другой id пользователей, которых функция рандома не должна вызвать
День добрый! Не могу понять почему при выводе на экран всей строки отображается как должно, а при переборе �? Подскажите в чем дело
Нужно чтобы в заявке с формы отображалось ключевое слово, по которому пользователь перешел на сайтКто-нибудь знает как реализовать? Обработчик...