【发布时间】:2020-09-12 08:20:16
【问题描述】:
我有这样的程序:
$txt = "
{ABC}
+ 1
- 1
{DEF}
+ 2
- 2
{IJK}
+ 3
- 3
{LMN}
+ 4
- 4
";
preg_match_all('/\{.*?\{/s', $txt, $matches);
var_dump($matches);
我想匹配两个左大括号(或文本结尾)之间的所有内容。 但是我的结果只包含 ABC 和 IJK 块,因为下一个 { 已经被吃掉了。
array(1) {
[0]=>
array(2) {
[0]=>
string(16) "{ABC}
+ 1
- 1
{"
[1]=>
string(16) "{IJK}
+ 3
- 3
{"
}
}
【问题讨论】:
-
请注意,对于您的实际字符串,一个简单的
explode("\n\n", $txt)(或preg_split('~\R\R~', $txt),如果您不确定换行顺序)会给您正确的结果。
标签: php regex preg-match-all