Html 正则表达式将div内的内容与特定类匹配

Html 正则表达式将div内的内容与特定类匹配,html,regex,Html,Regex,如何匹配具有特定类的所有div的内容。例如: <div class="column-box-description paddingT05">content</div> 内容 一般来说,你不应该对正则表达式这样做,除非你能对你匹配的文本做出强有力的假设;使用真正解析HTML的东西会做得更好 但是,如果你能做出更有力的假设,你可以使用: <div class="[^"]*?paddingT05[^"]*?">(.*?)<\/div> (*)

如何匹配具有特定类的所有div的内容。例如:

  <div class="column-box-description paddingT05">content</div>
内容

一般来说,你不应该对正则表达式这样做,除非你能对你匹配的文本做出强有力的假设;使用真正解析HTML的东西会做得更好

但是,如果你能做出更有力的假设,你可以使用:

<div class="[^"]*?paddingT05[^"]*?">(.*?)<\/div>
(*)

关键部分是不情愿的量词
*?
,它匹配尽可能少的文本(即,它不会贪婪地吃掉
您可以这样做:

<div.*class\s*=\s*["'].*the_class_you_require_here.*["']\s*>(.*)<\/div>

您真正想做的是什么?(提示:正则表达式(几乎总是)是解析HTML等不规则语言的糟糕解决方案)。我想用php变量替换div中的内容。div中的内容仅为text@FlorianShena这还不足以帮助您。这里有一个原因不起作用是因为它与div内的新行不匹配。@FlorianShena这是一个配置问题。您需要启用多行正则表达式,默认情况下通常不会启用。您应该在问题中注意到这一点。此外,您还没有指定要使用哪些工具进行替换。将来,如果您希望答案能够满足这些要求,请在问题中提供这些信息。因为现在我没有使用特定的工具,我只是在尝试g查找正确的正则表达式。我已选择了多行标志。@FlorianShena
默认情况下不匹配换行符;请使用
s
选项启用此选项。(非
m
),或使用
(.\n)*?
而不是
*?