Выберите текст после шаблона - PullRequest
0 голосов
/ 27 октября 2009

Я пытаюсь выделить весь текст между определенным шаблоном:

Образец текста:

"by thatonekid (Posted Mon Jan 12, 2009 7:17 pm)
fell onto the trail right below one of the most traveled walls at the point! yikes!

"

Каждый текст, над которым я работаю, будет начинаться с: «ИМЯ ПОЛЬЗОВАТЕЛЯ (Дата публикации) <br /> theTextIWant»

Я думал о взрыве на парене, но, очевидно, это может разбить текст, если есть другой парен.

Во-вторых, некоторые тексты заканчиваются на "<br /><br />". Мне нужно удалить конечные <br />, если после этого нет текста.

Я прошу прощения, если это выглядит так, будто я прошу кого-то сделать мою домашнюю работу - я, честно говоря, понятия не имею, с чего начать

Ответы [ 2 ]

3 голосов
/ 27 октября 2009

Если вам нужен только текст после имени пользователя / даты, вы можете просто удалить все до первого
, при условии, что форматирование соответствует.

$text = preg_replace("/^.*?<br(\s\/)?>/si", "", $string);

Это заменит все до и включая первую
или
, без учета регистра, на пустую строку, оставляя вас только с текстом. . *? в начале это не жадное совпадение, означающее, что оно будет захватывать как можно меньше. Другими словами, он не пройдет через первый перерыв.

Затем вы можете выполнить следующее:

$text = preg_replace("/^.*?<br(?:\s\/)?>(.*?)(<br(\s\/)?>)+$/si", "$1", $string);

Это должно удалить все завершающие пробелы и
/
теги.

Вы также можете сделать все это с помощью одного preg_replace:

$text = preg_replace("/.*?<br(?:\s\/)?>(.*)(?:<br(?:\s\/)?>\s*)+$/si", "$1", $string);

Я сделал все () захваты (? :) без захвата, кроме одного, содержащего текст.

(я не использую php регулярно, поэтому я предполагаю, что регулярное выражение, совместимое с perl, является тем, о чем говорится).

0 голосов
/ 27 октября 2009

Например, вы можете попробовать это регулярное выражение, с preg_match, я думаю. см. онлайн документ.

username : [_a-zA-Z09]+
date: [0-9]{1,2}/[0-9]{1,2}/[0-9]{2,4}

(извините, gtg, помогу вам позже, если не решен)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...