Всем добрый день! Есть такая строка: HTML: href="#eyJ0cCI6ImlzbGFuZCIsImlkIjoxMTQ2MjA3LCJpeCI6NjgxLCJpeSI6NzA2LCJyZXMiOiJTdyIsImxuayI6dHJ1ZSwid24iOiIifQ==" class="gp_island_link">Остров 1146207</a> Мне нужно спарсить "1146207"... Если бы не кириллица, проблем бы не было. Делаю так: PHP: var_dump (preg_match ('#island_link\"\>Остров(.+)<\/a>#ui', $html, $a)); Получаю: Compilation failed: invalid UTF-8 string
PHP: <?php preg_match ('#island_link\"\>(\d+)<\/a>#i', '"gp_island_link">Остров 1146207</a> ', $a); print_r ($a); ?> Возвращает пустой массив
Seganapa для вопросов связанных с регулярными выражениями есть отдельная тема, будьте внимательны. PHP: preg_match ('#(\d+)<\/a>$#', '"gp_island_link">Остров 1146207</a>', $a);
Виноват! Исправлюсь! Так то работает, но если в коде часто встречается (\d+)<\/a>... А нужно выбрать именно между gp_island_link">Остров ........... </a>, как быть в таком случае?
В таком случае, нужно уточнять, что приведенная строка, это не окончательный вариант. Ибо регулярные выражения пишутся индивидуально под каждую строку. PHP: preg_match('#class="gp_island_link">.*\s(\d+)<\/a>#', $html, $a);