正则表达式来获取两行之间的内容


Regular Expression to get content between two line

好吧,我有一个大文件,有一些内容需要隔离,这些内容位于- - - - - - - - - - [ عنوان ]- - - - - - - - - - [ انتهاى عنوان ],有什么方法可以用正则表达式和php来获取这些内容吗?

确切的格式是这样的:

- - - - - - - - - - [ عنوان ]
في حد اللواط
- - - - - - - - - - [ انتهاى عنوان ]
ومنها قوله سبحانه : ولوطا إذ قال لقومه : أتأتون الفاحشة وأنتم تبصرون أئنكم لتأتون
الرجال شهوة من دون النساء بل أنتم قوم تجهلون ، فما كان جواب قومه إلا أن قالوا أخرجوا
- - - - - - - - - - [ عنوان ]
في حرمة اللواط
- - - - - - - - - - [ انتهاى عنوان ]
في حرمة اللواط
ثم إنه لا شك في حرمة اللواط بل إن حرمته من ضروريات الدين ودل
عليها الكتاب المبين ( 1 ) وسنة سيد المرسلين وأهل بيته الطاهرين صلوات الله

然后继续。。。感谢

使用此代码,

$lines = preg_split("/['r'n]+/u", $str, -1, PREG_SPLIT_NO_EMPTY);
$data = array();
$start = '
    - - - - - - - - - - [ عنوان ]
    ';
$end = '
    - - - - - - - - - - [ انتهاى عنوان ]';
$start = trim($start);
$end = trim($end);
$process = false;
foreach($lines as $line){
    if(mb_strpos($line, $start, 0, "utf-8")!==false){
        $process=true;
    }elseif(mb_strpos($line, $end, 0, "utf-8")!==false){
        $process=false;
    }elseif($process){
        $data[] = $line;
    }
}
print_r($data);

注意:

  1. 由于LTR的方向,很难键入准确的短语。所以我使用修剪技术

样本