我需要提取两个特定字符串之间的行。 例如:
---Title---
Header 1:
Sample text. Multiple lines
Header 2:
Sample Text
在这里,我需要提取Header 1:
&之间的所有行。 Header 2:
。
我尝试了/^Header 1:(?s)(.*)Header 2:/i
。
答案 0 :(得分:0)
您可以使用爆炸功能http://us3.php.net/manual/en/function.explode.php
在没有正则表达式的情况下执行此操作示例:
$str = "---Title---
Header 1:
Sample text. Multiple lines
Header 2:
Sample Text";
$str=explode("Header 1:", $str)[1];
$str=explode("Header 2:", $str)[0];
echo $str;
答案 1 :(得分:0)
如果你想使用正则表达式,你需要使用正确的正则表达式修饰符:
请参阅此处的文档:
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
<?php
$str = file_get_contents('sample.txt');
echo $str;
if (preg_match('/Header 1:\s*(.*)Header 2:/msi', $str, $matches))
{
var_dump($matches[1]);
}