Замена конкретного текстового шаблона из абзаца на php - PullRequest
0 голосов
/ 05 ноября 2011

Мне нужно заменить текст, начинающийся с 'Title:' и заканчивающийся 'Article Body:', используя preg_replace или другим способом. Замененный текст не будет содержать вышеуказанных слов.

Например:

Название:

образец текста 1

Статья тела:

образец текста 2

Должен выводить только

образец текста 2

Как я могу сделать это с php?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2011

Используйте положительные / отрицательные взгляды.

$result = preg_replace('/(?<=Title:).*(?=Article Body:)/s', '\nTest\n', $subject);

Приведенное выше регулярное выражение заменит все, что находится внутри Заголовок: ... Тело статьи: с \ nTest \ n

Объяснение:

"
(?<=                # Assert that the regex below can be matched, with the match ending at this position (positive lookbehind)
   Title:              # Match the characters “Title:” literally
)
.                   # Match any single character
   *                   # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
(?=                 # Assert that the regex below can be matched, starting at this position (positive lookahead)
   Article\ Body:      # Match the characters “Article Body:” literally
)
"
0 голосов
/ 05 ноября 2011
$str = 'Title: this is sample text Article Body: this is also sample text';

// output: this is sample text this is also sample text
echo preg_replace('~Title: (.*)Article Body: (.*)~', '$1 $2', $str);

Регулярные выражения очень полезны, и вы должны научиться им пользоваться.В Интернете много статей, и эта обобщенная информация может вам помочь.

...