首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有正则表达式可以替换像这样的损坏的HTML属性?

问有没有正则表达式可以替换像这样的损坏的HTML属性?
EN

Stack Overflow用户
提问于 2010-12-08 21:09:07
回答 2查看 395关注 0票数 2

我正在使用PHP,我喜欢做一些自动化的功能,将取代破碎的HTML属性,如

代码语言:javascript
复制
title="TV 40" is better"

使用

代码语言:javascript
复制
title="TV 40" is better"

所以,我的问题是:如何使用正则表达式来查找第二个双引号?

EN

回答 2

Stack Overflow用户

发布于 2010-12-08 21:14:47

您可以使用它来代替正则表达式

代码语言:javascript
复制
$value = "HTML CODE";
html_entities($value, ENT_QUOTES, 'UTF-8');

我希望这对你有帮助,如果我错了,请纠正我。

票数 1
EN

Stack Overflow用户

发布于 2010-12-08 21:13:23

我对你想要实现的目标有些困惑。也许一个更大的例子会有所帮助。

  • 您写的html文档中是否有需要修复的错误?
  • 您是否正在尝试编写可以修复任何损坏的html的程序?

关于你的问题上下文的一些额外信息可能会有所帮助。

您可能会问到许多情况,但在vim中,这对我是有效的(对于您提供的示例):

代码语言:javascript
复制
:%s/"\(.*\)"\(.*\)"/"\1\"\2"/g

它将改变这一点:

代码语言:javascript
复制
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"

要这样做:

代码语言:javascript
复制
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"

然而,它会破坏这样的东西(它已经在工作了):

代码语言:javascript
复制
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不是一个好主意。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4387789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档