[英]Regex not matching the pattern with spaces and new lines
我正在尝试从字符串“已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);
实时未格式化的正则表达式可在此处找到。
您的正则表达式必须是这样的:
/<td colspan="2" class="valid">([\s\S]*)<\/td>/
您原来的Regex有一些错误:
.
与制表符,换行符不匹配,但您的字符串包含它们。 ?
是不必要的。 如果您希望td
的内容是可选的,则*
表示0或更大 此RegEx可能更有效:
/<td colspan="2" class="valid">(((?!<\/td>)[\s\S])+)<\/td>/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.