加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用正则表达式(记事本)查找包含撇号的html属性

发布时间:2020-12-14 05:47:13 所属栏目:百科 来源:网络整理
导读:解决了(见“justhalf”的第一条评论) ** 我知道,使用RegEx搞乱HTML是邪恶的. 但是,我的手段和技术诀窍受到限制,我不知道还能做什么. 情况如下: 我有一个包含约5000页的网站. 我想修复一些错误: 这样的事情: a href =“foo”alt ='女王的服务员吃了蛋糕.'
解决了(见“justhalf”的第一条评论)

**

我知道,使用RegEx搞乱HTML是邪恶的.

但是,我的手段和技术诀窍受到限制,我不知道还能做什么.

情况如下:

我有一个包含约5000页的网站.

我想修复一些错误:

这样的事情:
< a href =“foo”alt ='女王的服务员吃了蛋糕.' ID = '饴' > 此示例中的错误是HTML属性“alt”的值包含在撇号中,但文本也包含撇号.
应该有很多这种类型的错误.我想找到所有并纠正它们.

我尝试了这种模式:{[a-zA-Z].*?='[^’].*?'[^ =>].*?’}:

即:一个空格,后跟HTML属性的名称([a-zA-Z].*?),后跟=和属性的值(='[^’].*?’).到此为止,这应该匹配有效的HTML属性.
对于有效的HTML属性,现在从此处开始的将是空格,后跟下一个属性,或者右括号>对于HTML标记.
因此,为了匹配错误的HTML属性,如上所述,我继续使用([^ =>].*?’)搜索模式,即一个不包含=或>的字符串,后跟一个’ .换句话说,在任何=或>之前预期下一个撇号.标志.

根据我的理解,这应该排除有效的HTML属性,后面跟着下一个HTML属性或关闭>对于HTML标记.但不知何故,它并没有真正起作用.

以这种搜索模式为例,我发现这样的事情:

class='noteTag' href='

id='fnt-14' name='

所以…有效的HTML属性,接着是下一个.

但我认为这些事情应该被[^ =>]排除.*?’

非常困惑.

解决方法

改编@justhalf回答:

正则表达式[a-zA-Z] *?='[^’] *'[^ =>] *’可用于容纳这些模式:

<a href="foo" alt='The queen's attendants ate the cake.' id='yee'>
<a href="foo" alt='The queens''' attendants ate the cake.' id='yee'>
<a href="foo" alt='The queen's attendants ate the cake.' >
<a href="foo" alt='The queen's attendants ate the cake.'>
<a href="foo" id='yee' alt='The queen's attendants ate the cake.'>

注意也可以解决多个单引号.
有关说明,请参见@justhalf comment.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读