4

我有以下代码:

$str_val = "L(ine 1(
    L(ine 2)
    Line 3
    Line 4)";
$regex = '/\(([^\)]*?)\)/i';
preg_match($regex, $str_val, $matches_arr);
print_r($matches_arr);

此代码匹配 first(和 first之间的所有内容)

我正在寻找$regex可以匹配 first(和 last之间的所有内容的内容)

我会很感激你的帮助。

提前致谢。

4

3 回答 3

3

你可以使用这个: -

'/\((.*)\)/s'

/s修饰符用于使点元字符匹配包括换行符在内的所有内容。而且,由于.*是一个贪婪的量词,它将匹配可能的最长字符串。所以,它会匹配到最后一个)

于 2012-12-27T18:58:49.103 回答
0

试试这个正则表达式:

\([^\)]*\)

第一场比赛是你需要的。

于 2012-12-27T18:58:45.050 回答
0

只是做一个贪婪的搜索

$regex = '/\(.*\)/s';

如果您真的想拥有两者之间 (...)的一切,请使用这个

$regex = '/\((.*)\)/s';
preg_match($regex, $str_val, $matches_arr);
echo $matches_arr[1];
于 2012-12-27T18:59:24.337 回答