PHP不支持 -> <table[^>]*>(([^<>]*(?'open'<[^/](?!table)[^>]*>)*[^<>]*(?'-open'</(?!table)[^>]*>)*[^<>]*)*(?(open)(?!)))</table>
报错为:Compilation failed:
可能是PHP对平衡组,支持的没有那么好。另外,Javascript也不支持这种。但在 Regex Match Tracer 等工具上是可以跑的,可能JAVA或者是其它语言可以用到。
PHP 可以用 -> #<table([^>]*)>([^<>]*((<(?!table|/table)[^>]*>)+[^<>]*)*)</table>#is
但对中间包含的元素,其实检测不严格。但就爬虫来说,足够了。
© 著作权归作者所有