Разделители php Regex

это интересный случай, который я нашел.
Пожалуйста, рассмотрите это $ data_in, содержащее:

[spoiler title="DATE : " open="1" style="1"]
11/Jan/2015
12/Feb/2015
15/Mar/2015
[/spoiler]

Моя цель состоит в том, чтобы извлечь все даты, написанные из данного текста.
Итак, какой (регулярное выражение), что подходит?

$data_ext = preg_match("]/^(\d{2})\/(\w+)\/(\d{4})[", $data_in, $data_array);

Это не дало мне хорошего результата, вместо этого я получил ошибку:

Предупреждение: preg_match (): в конце не найдено конечного разделителя ‘]’ …

Так какую часть я забыл написать на ней?

0

Решение

Регулярные выражения имеют разделители. Первый и последний символ в регулярном выражении (если у вас нет модификаторов) отмечают начало и конец шаблона. Наиболее часто используемый разделитель / потому что некоторые языки (например, ) есть особые черты для этого. Но вы можете использовать любой не буквенно-цифровой символ без обратной косой черты, без пробелов.

Если вы также хотите включить в шаблон символ, используемый в качестве разделителя, его необходимо экранировать. Так что это хорошая идея в этом случае не использовать / для свиданий.

Это пример регулярного выражения с # в качестве разделителя:

$data_ext = preg_match_all('#^(\d{2})/([a-z]{3,9}|\d{1,2})/(\d{4})$#mi', $data_in, $data_array);
  • Шаблон заключен в # разделители и имеет m (многострочный) и i модификаторы (без учета регистра).
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector