当前位置:  开发笔记 > 编程语言 > 正文

是否在> html-element属性值中允许">"(U + 003E GREATER-THAN SIGN)?

如何解决《是否在>html-element属性值中允许">"(U+003EGREATER-THANSIGN)?》经验,为你挑选了1个好方法。

换句话说,可以使用/]*>.*?<\/tag>/正则表达式来匹配tag不包含嵌套tag元素的html 元素吗?

例如(lt.html):



  
    greater than sign in attribute value
  
  
    
1
2

正则表达式:

$ perl -nE"say $1 if m~]*>(.*?)
~" lt.html

和屏幕刮刀:

#!/usr/bin/env python
import sys
import BeautifulSoup

soup = BeautifulSoup.BeautifulSoup(sys.stdin)
for div in soup.findAll('div'):
    print div.string


$ python lt.py 

两者都给出相同的输出:

1
">2

预期产量:

1
2

w3c说:

属性值是文本和字符引用的混合,除了文本不能包含模糊符号的附加限制.

Kornel.. 9

是的,允许(W3C Validator接受它,只发出警告).

非转义<,>也允许内部评论,所以这样简单的正则表达式可以被愚弄.

如果BeautifulSoup没有处理这个问题,那么它可能是一个错误,或者可能是一个有意识的设计决定,使其更容易在属性中缺少关闭引号.



1> Kornel..:

是的,允许(W3C Validator接受它,只发出警告).

非转义<,>也允许内部评论,所以这样简单的正则表达式可以被愚弄.

如果BeautifulSoup没有处理这个问题,那么它可能是一个错误,或者可能是一个有意识的设计决定,使其更容易在属性中缺少关闭引号.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有