Php 正则表达式不匹配带有空格和新行的模式
我试图从传递的字符串Php 正则表达式不匹配带有空格和新行的模式,php,regex,Php,Regex,我试图从传递的字符串中获取两个警告。我是regex的noob,请帮忙 $str_html = ' <td colspan="2" class="valid"> Passed, <strong class="has_warnings">2 warning(s)</strong> </td> ' preg_match('#<td colspan="2" class="valid">(.*?)</td>#', $s
中获取两个警告。我是regex的noob,请帮忙
$str_html = '
<td colspan="2" class="valid">
Passed, <strong class="has_warnings">2 warning(s)</strong>
</td> '
preg_match('#<td colspan="2" class="valid">(.*?)</td>#', $str_html, $data_html_errors);
$str\u html=”
通过,有两个警告
'
preg#u match('#(.*?)#',$str#u html,$data#u html#errors);
可以在这里找到实时的非格式化正则表达式
您的正则表达式必须如下所示:
/<td colspan="2" class="valid">([\s\S]*)<\/td>/
您的正则表达式必须如下所示:
/<td colspan="2" class="valid">([\s\S]*)<\/td>/
]*?>(*?)
试试这个
见演示
]*?>(*?)
试试这个
见演示
您不需要使用任何捕获组
<td colspan="2" class="valid">\s*\K.*?(?=\s+<\/td)
\s*\K.*(?=\s+您不需要使用任何捕获组
<td colspan="2" class="valid">\s*\K.*?(?=\s+<\/td)
\s*\K.*?(?=\s+发生了一件奇怪的事情,我正在用ajax提取数据,当我添加这个正则表达式时,它在30秒内加载,它的性能非常昂贵?@user3467855如果你有一个非常大的文件,这个正则表达式非常昂贵。你的文件有多大?我会尝试为你提供一个更合适的正则表达式。它通常是一个网页,所以可能在10000 c之间hars和100000个字符。现在它的回声比它应该的要大(尽管它要快得多)我试着从那里得到结果。它实际上是从
开始回响,直到你写的第一个正则表达式的字符串结束,我得到36秒,这一个20秒,还有比这更快的吗?你的时间和持久性很好,发生了一件奇怪的事情,我是pulli使用ajax处理数据,当我添加这个正则表达式时,它在30秒内加载,它的性能很昂贵吗?@user3467855如果你有一个非常大的文件,这个正则表达式非常昂贵。你的文件有多大?我会试着为你提供一个更合适的正则表达式。它通常是一个网页,所以可能在10000到100000个字符之间。现在它的回音比它更多应该(尽管速度快得多)我试着从那里得到结果。它实际上是从
开始回响,直到你写的第一个正则表达式的字符串结束,我得到36秒,这一个20秒,还有比这更快的吗?你的时间和持久性很好。捕获组可能会减慢你的进程。Yes这很快,10秒。捕获组可能会减慢您的进程。是的,这很快,10秒。