正则表达式另一行
Regex another line
你好,我正在学习正则表达式,我想知道为什么:
此代码:
<?PHP
$str = '<TD class=""><option value="123">abc</option>
</TD>
<TD class=""><option value="123">abcwda</option>
</TD>';
preg_match_all('#<TD([\S\s]+)</TD>#s', $str, $tabela);
?>
Return:
Array
(
[0] => class=""><option value="123">abc</option>
</TD>
<TD class=""><option value="123">abcwda</option>
)
为什么不呢return:
Array
(
[0] => class=""><option value="123">abc</option>
[1] => class=""><option value="123">abcwda</option>
)
?
因为greedy +
. Use its lazy对口(+?
):
preg_match_all('#<TD(.+?)</TD>#s', $str, $tabela);
另请注意,由于您使用的是 /s
修饰符,因此 .
将匹配换行符,因此您不需要 [\S\s]
结构。
你好,我正在学习正则表达式,我想知道为什么:
此代码:
<?PHP
$str = '<TD class=""><option value="123">abc</option>
</TD>
<TD class=""><option value="123">abcwda</option>
</TD>';
preg_match_all('#<TD([\S\s]+)</TD>#s', $str, $tabela);
?>
Return:
Array
(
[0] => class=""><option value="123">abc</option>
</TD>
<TD class=""><option value="123">abcwda</option>
)
为什么不呢return:
Array
(
[0] => class=""><option value="123">abc</option>
[1] => class=""><option value="123">abcwda</option>
)
?
因为greedy +
. Use its lazy对口(+?
):
preg_match_all('#<TD(.+?)</TD>#s', $str, $tabela);
另请注意,由于您使用的是 /s
修饰符,因此 .
将匹配换行符,因此您不需要 [\S\s]
结构。