Я пытаюсь сделать регулярное выражение PHP preg_replace, чтобы удалить все после определенной строки. Допустим, у меня есть статья, и в конце каждой статьи есть определенный шаблон слов, которым статья всегда заканчивается. Как следующее.
Строка ввода:
Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Cras vestibulum pellentesque egestas. Sed Quis Velit Eros. Phasellus vitae, euismod lectus nec, auctor libero. In venenatis sapien id nunc varius vehicleula./Site.com/ Рис МТ 12/04/2015, Ора 20:56 Теги: Sapien Lectus Kalon Fames Laoreet
Желаемый результат:
Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Cras vestibulum pellentesque egestas. Sed Quis Velit Eros. Phasellus vitae, euismod lectus nec, auctor libero. In venenatis sapien id nunc varius vehicleula./Site.com/
Следовательно, я хочу удалить шаблон и все после шаблона во входной строке, которое выделено жирным шрифтом. «Рис Мо 12/04/2015, Ора 20:56«так как он всегда будет одинаковым и следовать за датой и временем, в цифровом формате.
Я пытаюсь сделать что-то вроде приведенного ниже кода, но я не могу построить регулярное выражение без ошибок, так как я не уверен в правильном синтаксисе желаемого шаблона.
$desired_string = preg_replace('\^Risus m.\s\d\d\D\d\d\D\d\d\d\d\\D\s(ora)','',$string);
Спасибо!!
Если вы хотите использовать регулярные выражения, чтобы удалить что-то после маркера в тексте до конца, вам нужно использовать .*?
, Итак, вы можете использовать что-то вроде этого:
\s*Risus\s+m.\s+\d{2}\D\d{2}\D\d+,\s+ora.*$
Код PHP:
$re = "/\\s*Risus\\s+m.\\s+\\d{2}\\D\\d{2}\\D\\d+,\\s+ora.*$/";
$str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vestibulum pellentesque egestas. Sed quis velit eros. Phasellus vitae, euismod lectus nec, auctor libero. In venenatis sapien id nunc varius vehicula./Site.com/ Risus mt 12/04/2015, ora 20:56 Tags: sapien lectus kalon fames laoreet";
$result = preg_replace($re, "", $str);
Увидеть демонстрация.
Других решений пока нет …