在PHP中處理多行文本匹配可以使用多行模式修飾符m
,這樣正則表達式就可以匹配文本中的每一行而不僅僅是整個字符串。
例如,如果要匹配包含特定關鍵字的文本行,可以使用如下代碼:
$text = "Line 1: This is line 1\nLine 2: This is line 2\nLine 3: This is line 3";
$pattern = '/^Line \d+: This is line \d+$/m';
if (preg_match_all($pattern, $text, $matches)) {
print_r($matches[0]);
}
上面的正則表達式/^Line \d+: This is line \d+$/m
會匹配以Line
開頭,后面跟著數字,然后是冒號和具體內容的文本行。在多行模式下,匹配會在每行進行,而不僅僅是整個字符串。
另外,如果要匹配多行文本中的所有內容,可以使用/s
修飾符,它可以讓.
匹配包括換行符在內的任意字符。例如:
$text = "Line 1: This is line 1\nLine 2: This is line 2\nLine 3: This is line 3";
$pattern = '/Line \d+: This is line \d+/s';
if (preg_match_all($pattern, $text, $matches)) {
print_r($matches[0]);
}
這種方式可以匹配文本中包含指定關鍵字的內容,并且可以跨行匹配。