我需要这个正则表达式的帮助,我必须在PHP中使用它,但在使用preg_match时我一直遇到错误。我知道我做错了什么,但我无法理解。此正则表达式查找/匹配字符串中的html标记。如果您有任何其他可以执行此操作的正则表达式,请告诉我们!
</?(a|abbr|acronym|address|applet|area|b|base|basefont|bdo|big|blockquote|body|br|button|caption|center|cite|code|col|colgroup|dd|del|dir|div|dfn|dl|dt|em|fieldset|font|form|frame|frameset|h[1-6]|head|hr|html|i|iframe|img|input|ins|isindex|kbd|label|legend|li|link|map|menu|meta|noframes|noscript|object|ol|optgroup|option|p|param|pre|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|xmp)\b((\"[^\"]*\"|\'[^\']*\')*|[^\"\'>])*>
if (!preg_match("/</?(a|abbr|acronym|address|applet|area|b|base|basefont|bdo|big|blockquote|body|br|button|caption|center|cite|code|col|colgroup|dd|del|dir|div|dfn|dl|dt|em|fieldset|font|form|frame|frameset|h[1-6]|head|hr|html|i|iframe|img|input|ins|isindex|kbd|label|legend|li|link|map|menu|meta|noframes|noscript|object|ol|optgroup|option|p|param|pre|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|xmp)\b((\"[^\"]*\"|\'[^\']*\')*|[^\"\'>])*>/", $input) && preg_match("/^.{2,$max_width}$/i", $input)) {
$result = true;
}
谢谢!
答案 0 :(得分:2)
你的正则表达式以/</?(a|abbr|ac...
开头 - 分隔符(表示正则表达式的开头和结尾)是正斜杠。当它在<
之后看到第二个正斜杠时,它认为正则表达式已经完成。
将其更改为/<\/?(a|abbr|ac
(使用反斜杠转义斜杠),它将起作用。