PHP регулярное выражение, чтобы получить заголовок - PullRequest
0 голосов
/ 21 апреля 2010

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

Joe User написал сообщение в блоге под названием 10 лучших выражений регулярных выражений в категории регулярных выражений.

Джейн Пользователь написал сообщение в блоге под названием Regex - Hard! в категории TechProblems.

Я пытался придумать выражение регулярного выражения, чтобы покрыть это, но я думаю, что может понадобиться два. Хитрость заключается в том, что текст , выделенный жирным шрифтом , всегда один и тот же, поэтому вы можете искать его следующим образом:

regex: удалите все до и включая написал сообщение в блоге под названием

regex: удалить в категории и все после нее.

1 Ответ

1 голос
/ 21 апреля 2010
^.+ wrote a blog post called (.+) in the category .+$

Итак:

preg_replace( '|^.+ wrote a blog post called (.+) in the category .+$|', '\1', $str );

^ - начало строки
. + это несколько символов (один ко многим)
(. +) то же самое, но содержимое будет доступно в \ 1 для preg_replace ()
$ это конец строки

...