preg_replace GitHub со вкусом уценки кодблока и удалить

Я пытаюсь перехватить все вхождения блоков кода Markdown со вкусом GitHub, а затем удалить их из конечного результата моего приложения. У меня есть соответствующий шаблон RegEx, который можно увидеть здесь: http://www.regexpal.com/?fam=96555, Однако, когда я запускаю его в preg_replace Функция не удаляет блок кода.

Вот функция preg_replace, которую я запускаю:

preg_replace("/(```[a-z]*\n[\s\S]*?\n```)/", "", $content);

Вот исходный контент, с которым я его запускаю, который возвращается без изменений при запуске через вышеуказанную функцию:

```php
<?php echo 'test'; ?>
```
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula.
Donec rutrum congue leo eget malesuada. Curabitur non nulla sit amet nisl
tempus convallis quis ac lectus. Donec sollicitudin molestie malesuada. Nulla
porttitor accumsan tincidunt. Curabitur aliquet quam id dui posuere blandit.

Конечный результат должен быть:

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula.
Donec rutrum congue leo eget malesuada. Curabitur non nulla sit amet nisl
tempus convallis quis ac lectus. Donec sollicitudin molestie malesuada. Nulla
porttitor accumsan tincidunt. Curabitur aliquet quam id dui posuere blandit.

Любая помощь будет оценена. Спасибо!

1

Решение

Попробуй с \R который является спасением для любого последовательность строк вместо \n,

preg_replace('/```[a-z]*\R.*?\R```/s', "", $content);
  • Может быть, у вас есть \r между [a-z] а также \n
  • Проверить заменить [a-z]*\n от [a-z]*\r?\n
  • Далее используется .*? с точка соответствует всем флаг s

Вот демо на eval.in

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

1

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

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

По вопросам рекламы [email protected]