REGEX替换所有的“;风格=';任何事'&引用;除了在桌子里
我正在解析html。我知道这不应该用正则表达式,而应该用dom/xpath。在我的情况下,它应该只是快速,简单,没有整洁,所以我选择了正则表达式 该任务将用空字符串替换所有REGEX替换所有的“;风格=';任何事'&引用;除了在桌子里,regex,Regex,我正在解析html。我知道这不应该用正则表达式,而应该用dom/xpath。在我的情况下,它应该只是快速,简单,没有整洁,所以我选择了正则表达式 该任务将用空字符串替换所有style='xxx',表中除外 preg_replace的这个正则表达式可以捕获所有style='xxx',无论在哪里: '/ style="([^"]+)"/s' 内容可以是这样的 或者只是简单的非嵌套表,这意味着正则表达式应该排除嵌套表中的所有style=''.' 有一个简单的语法可以做到这一点吗? 不,真的,
style='xxx'
,表中除外
preg_replace的这个正则表达式可以捕获所有style='xxx'
,无论在哪里:
'/ style="([^"]+)"/s'
内容可以是这样的
或者只是简单的非嵌套表,这意味着正则表达式应该排除嵌套表中的所有style=''.'
有一个简单的语法可以做到这一点吗?
不,真的,你不应该
正如您的示例所证明的,您可以期望嵌套表。这意味着正则表达式应该跟踪嵌套的级别,以决定您是否在表中。如果你找到一种方法来解决这个问题,它肯定不会是“快速而简单的”。电子邮件,重新提出这个问题,因为它有一个没有提到的正则表达式。(在为某个客户进行研究时发现了您的问题。) 所有关于使用正则表达式解析html的免责声明,下面是一个简单的方法 首先,我们需要一个正则表达式来匹配表,不管是否嵌套。这通过简单的递归实现:
<table(?:.*?(?R).*?|.*?)</table>
no正则表达式不必跟踪嵌套表。有正确的修饰符可以使用,只查找我给定的正则表达式,它不在@Email not the point中;你试图使用错误的工具来完成这项工作。
<table(?:.*?(?R).*?|.*?)</table>
(?s)<table(?:.*?(?R).*?|.*?)<\/table>(*SKIP)(*F)|style=(['"])[^'"]*\1