regex — PHP и regex101.com имеют разные результаты

Я создал регулярное выражение.

([A-Za-Z,<] [/ a-zA-Z0-9>.?!,; _<«\ N-]) [| \ n] [0-9][| \ n]

Я хотел бы использовать его в файле субтитров.
например.:

65 00: 04: 33,417 -> 00: 04: 35,658 Но я уволился со своей старой работы, чтобы быть
с тобой.

66 00: 04: 35,937 -> 00: 04: 36,984 Вам не хватает этого?

67 00: 04: 41,217 -> 00: 04: 42,423 Нет, мне нравится моя новая работа.

Когда я использую это регулярное выражение на regex101 или regexr.com, тогда он работает правильно.
Но когда я использую в своем коде PHP, они имеют разные результаты.

$myString=file_get_contents("wwz.srt");
$formula="/([a-zA-Z<][\/a-zA-Z0-9> .?!,;_<'\n-]*)[ |\n][0-9]*[ |\n]/";
preg_match_all($formula, $myString, $matches);

Есть часть подзаголовка:

70 00: 04: 49,017 -> 00: 04: 50,348 Посмотри, кого я нашел!

71 00: 04: 49,017 -> 00: 04: 50,348 А вот и поезд номер 12!

72 00: 04: 50,417 -> 00: 04: 51,782 Это не Метро Сэм, не так ли?

73 00: 04: 52,337 -> 00: 04: 54,578 Хотите еще блинов?

74 00: 04: 55,177 -> 00: 04: 56,542 Хорошо.

75 00: 04: 56,697 -> 00: 04: 58,984 Иди, иди, иди. Давай, Скотч!

76 00: 04: 59,057 -> 00: 05: 00,821
— По крайней мере…
— Двигайся дальше.

77 00: 05: 00,897 -> 00: 05: 02,786 Привет! Тарелки в раковине!

78 00: 05: 02,857 -> 00: 05: 04,018
— Потом!
— Сделай это, когда мы вернемся!

Если я буду использовать этот пример в regex101, это будет первый результат:

Смотри, кого я нашел! 71

Если я использую этот пример в своем php-коде с тем же регулярным выражением, это будет первый результат:

А вот и номер 12

Где ошибка?

0

Решение

Когда вы копируете созданное регулярное выражение из regex101.com, чтобы использовать его в своей программе, вы должны использовать генератор кода, потому что он обеспечивает правильное экранирование символов для использования в строке.
В дополнение к этому вы должны убедиться, что вы выбрали правильный вариант, потому что вы можете получить регулярное выражение, которое работает онлайн с regex101, но не внутри вашей программы, потому что оно использует другой механизм регулярных выражений.

введите описание изображения здесь

4

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

Кроме того, я думаю, что более полезный сайт для проверки PHP регулярных выражений будет http://www.phpliveregex.com/

1

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