首页 > 解决方案 > 正则表达式在php中带有换行符

问题描述

我正在寻找 php 中的正则表达式而没有达到我的目标......这是我的字符串:

$string = 'xxxxxxxxxxxx "segment

to

recovered with line breaks" xxxxx "other segment without line break" xxxx';

我想检索带换行符的引号中的段,而不检索引号中的段而没有换行符。

这是我当前的正则表达式:

preg_match('/\"[^\"$]*\"/', $string, $match);

你能让我离开那里吗?

标签: phpregex

解决方案


使用积极的前瞻来匹配换行符:

$string = 'xxxxxxxxxxxx "segment

to

recovered with line breaks" xxxxx "other segment without line break" xxxx';

preg_match_all('/"(?=[^"]*\R)[^"]*"/', $string, $match);
print_r($match);

该部分(?=[^"]*\R)确保我们在比赛中有一个换行符。

输出:

Array
(
    [0] => Array
        (
            [0] => "segment

to

recovered with line breaks"
        )

)

推荐阅读