我正在使用PHP,我喜欢做一些自动化的功能,将取代破碎的HTML属性,如
title="TV 40" is better"使用
title="TV 40" is better"所以,我的问题是:如何使用正则表达式来查找第二个双引号?
发布于 2010-12-08 21:14:47
您可以使用它来代替正则表达式
$value = "HTML CODE";
html_entities($value, ENT_QUOTES, 'UTF-8');我希望这对你有帮助,如果我错了,请纠正我。
发布于 2010-12-08 21:13:23
我对你想要实现的目标有些困惑。也许一个更大的例子会有所帮助。
关于你的问题上下文的一些额外信息可能会有所帮助。
您可能会问到许多情况,但在vim中,这对我是有效的(对于您提供的示例):
:%s/"\(.*\)"\(.*\)"/"\1\"\2"/g它将改变这一点:
title="TV 40" is better" title="TV 40" is better"
title="TV of 40 inch, spelled also as, 40" is better"
title="TV 40 is better"要这样做:
title="TV 40" is better" title="TV 40" is better
title="TV of 40 inch, spelled also as, 40" is better
title="TV 40 is better"然而,它会破坏这样的东西(它已经在工作了):
title="TV 40 is better" title="TV 40 is better"我想,正如我之前提到的,给我们一些关于您试图解决的问题的更多背景信息将是有帮助的。
一般而言,尝试用正则表达式解析通常是个不好的主意。有太多的事情可能会变得异常。除非您知道html将采用某种格式,否则我不会这么做。超文本标记语言不是regular language,所以不可能用正则表达式进行解析。唯一能解决这个问题的方法就是如果你知道一些关于html的特殊信息。或者您只想在以预定方式格式化的html页面中找到非常具体的内容。
根据Jeff Attwod的说法,如果你试图用正则表达式来解析html,那么你就是在屈从于黑神克苏鲁的…er…代码的诱惑。See this page。
This answer还提供了一些很好的例子来说明为什么用正则表达式解析html不是一个好主意。
https://stackoverflow.com/questions/4387789
复制相似问题