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

时间:2012-04-05 08:51:19

标签: php regex

好吧,我有一个大文件,我需要分隔一些内容,内容介于两者之间  - - - - - - - - - - [ عنوان ]- - - - - - - - - - [ انتهاى عنوان ],有没有办法用reqular表达式和php来获取这些内容?

格式如下:

- - - - - - - - - - [ عنوان ]
في حد اللواط
- - - - - - - - - - [ انتهاى عنوان ]

ومنها قوله سبحانه : ولوطا إذ قال لقومه : أتأتون الفاحشة وأنتم تبصرون أئنكم لتأتون
الرجال شهوة من دون النساء بل أنتم قوم تجهلون ، فما كان جواب قومه إلا أن قالوا أخرجوا

- - - - - - - - - - [ عنوان ]
في حرمة اللواط
- - - - - - - - - - [ انتهاى عنوان ]
في حرمة اللواط
ثم إنه لا شك في حرمة اللواط بل إن حرمته من ضروريات الدين ودل
عليها الكتاب المبين ( 1 ) وسنة سيد المرسلين وأهل بيته الطاهرين صلوات الله

继续......谢谢

1 个答案:

答案 0 :(得分:2)

使用此代码,

$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方向很难输入确切的短语。所以我使用修剪技术。
  2. Sample