我正试图从字符串Passed, <strong class="has_warnings">2 warning(s)</strong>
中获取。我是正则表达式中的一个小人物,请帮忙。
$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);
可以在此处找到实时的非格式化正则表达式。
http://regexr.com/39e45
您不需要使用任何捕获组。
<td colspan="2" class="valid">'s*'K.*?(?='s+<'/td)
演示
<td[^>]*?>(.*?)<'/td>
试试这个。
请参阅演示。
http://regex101.com/r/sA7pZ0/29
您的正则表达式必须如下所示:
/<td colspan="2" class="valid">(['s'S]*)<'/td>/
你原来的Regex有几个错误:
.
与制表符、换行符不匹配,但您的字符串包含它们?
是不必要的。如果您希望td
中的内容是可选的,则*
已经意味着0或更多
http://regexr.com/39e48
这种RegEx可能更高效:
/<td colspan="2" class="valid">(((?!<'/td>)['s'S])+)<'/td>/
http://regexr.com/39e4n