PHP регулярное выражение: сопоставление всего, пока не появится слово - PullRequest
1 голос
/ 22 сентября 2011

В PHP я ищу все, пока не появится определенное слово:

$text = "String1

                         .

                  testtesthephepString2 Here";

$faultyregexp = "#String1(.+)String2 Here#";

preg_match($text, $faultyregexp, $result);

Теперь я хочу сопоставить все между String1 и String2, но по какой-то причине это не работает.

Я думаю, вы могли бы сделать что-то вроде #String1(^String2 here+)String2 here#, если вы понимаете, что я имею в виду :)?

1 Ответ

5 голосов
/ 22 сентября 2011

Проблема в том, что по умолчанию . не включает символы новой строки.Если вы хотите, чтобы . соответствовал всем символам, вам нужно указать модификатор s (PCRE_DOTALL):

/String1(.+)String2 Here/s
...