开发者

php REGEX match every line after a certain line [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

PHP REGEX preg_math_all every line after a particular line

I want a pattern that will match every line after a particular line - the only constant that I can rely on is that if the header is there I know I want the follow lines. It doesn't matter if I end up getting more lines than I want because I'll only take the first however many I need.

SURGICAL/MEDICAL HISTORY <--Header to indicate the beginning of my list
HISTORY 1 <--line1 to be matched
HISTORY 2 <--line2 to be matched
HISTORY 3 <--line3 to be matched
.
.

I'm not posting a real sample of the text because it shouldn't matter - the pattern must be flexible and for other particular reasons. I just always have such an issue with lines in regex. Here is what I have:

$ptn = "/SURGICAL\/MEDICAL HISTORY\s*(^(.+)$)+/m";

But that only matches the first line. Thanks!

EDIT: I need all of the matched lines in separated in an array:

Array
(
    [0] => Array
        (
            [0] => SURGICAL/MEDICA开发者_如何学CL HISTORY
HISTORY 1
HISTORY 2
        )

    [1] => Array
        (
            [0] => HISTORY 1
            [1] => HISTORY 2
        )

)


This might be useful : Pattern Modifiers

s (PCRE_DOTALL)

If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.

Your final regex should look like this (not tested) :

$ptn = "/SURGICAL\/MEDICAL HISTORY\s*$(.*)/ms";
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜