我有以下代码:
$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);
此代码匹配第一个(
和第一个)
之间的所有内容。
我正在寻找我会放在$regex
中的内容,它会匹配第一个(
和最后一个)
之间的所有内容。
我很感激你的帮助。
提前致谢。
答案 0 :(得分:2)
您可以使用: -
'/\((.*)\)/s'
/s
修饰符用于启用点元字符以匹配包括换行符在内的所有内容。并且,由于.*
是一个贪婪的量词,它将匹配可能的最长字符串。因此,它将匹配到最后)
。
答案 1 :(得分:0)
试试这个正则表达式:
\([^\)]*\)
第一场比赛就是你所需要的。
答案 2 :(得分:0)
只是做一个贪婪的搜索
$regex = '/\(.*\)/s';
如果你真的希望 (...)
之间的所有使用这个
$regex = '/\((.*)\)/s';
preg_match($regex, $str_val, $matches_arr);
echo $matches_arr[1];