有线条
(01) Some text
(10) Foo Bar
(11) ?
(13) Foo Bar
(13) ?
(20) Something else
批量检查 4 行。如果第 1 行和第 3 行相同,第 2 行和第 4 行相同(XX) ?
,则将第 2-4 行替换...
为
(01) Some text
(10) Foo Bar
...
(20) Something else
代码:
$arr = explode("\n", $t);
if ( count($arr) > 3 ) {
for ($i=1; $i<count($arr); $i++) { // check 4 rows
if( ($arr[$i-1] == $arr[$i+1]) // if row 1 and 3 are the same
&& preg_match('/\(\d+\) \?$/', $arr[$i]) // and row 2 is "(XX) ?"
&& preg_match('/\(\d+\) \?$/', $arr[$i+2]) // and row 4 is "(XX) ?"
) {
print "Match!"; //test. later replace rows 2-4 with a row "..."
}
}
}
这目前给了我一个偏移错误。
测试:http ://codepad.viper-7.com/iMO3BW
这怎么可能解决?