我在LONGTEXT列中有这些数据(因此会保留换行符):
Paragraph one
Paragraph two
Paragraph three
Paragraph four
我正在尝试匹配第1段到第3段。我正在使用此代码:
preg_match('/Para(.*)three/', $row['file'], $m);
这不会返回任何内容。如果我尝试在段落的第一行内工作,请匹配:
preg_match('/Para(.*)one/', $row['file'], $m);
然后代码工作,我得到正确的字符串返回。我在这里做错了什么?
答案 0 :(得分:51)
使用s
修饰符。
preg_match('/Para(.*)three/s', $row['file'], $m);
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
答案 1 :(得分:11)
答案 2 :(得分:4)
尝试将正则表达式设置为dot-all(结尾处的额外's'参数),因此它包含换行符:
preg_match('/Para(.*)three/s', $row['file'], $m);
答案 3 :(得分:0)
如果您一开始不喜欢/
和and,请使用T-Regx
$m = Pattern::of('Para(.*)three')->match($row['file'])->first();