首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HtmlParser.entityref实际上是匹配html实体引用的有效regex吗?

HtmlParser.entityref实际上是匹配html实体引用的有效regex吗?
EN

Stack Overflow用户
提问于 2014-11-20 15:33:15
回答 1查看 115关注 0票数 1

这是代码从… Python2.7 HtmlParser

代码语言:javascript
复制
entityref = re.compile('&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]')

以前,我认为它更像是这样的:

代码语言:javascript
复制
entityref = re.compile('&([a-zA-Z][-.a-zA-Z0-9]*);')

所以它让我惊讶地发现了一些来自陌生来源的奇怪数据。

我的用例不相关;是否有理由像HtmlParser?那样定义实体引用?

无关用例:应该有人怀疑,但我还是描述了我的用例。请注意,我不再试图解决我的用例了。我的问题是HtmlParser的实体是否有问题。

我的用例类似于这样:从Python中的字符串中剥离HTML

我刚才提到的输入数据如下:

代码语言:javascript
复制
r'''<foo bar="blah"> asda&Il_'d@m_'<foo rab="halb">'''

我用例的预期输出应该是r"""a&Il_'d@m_'"""

编辑--我试图比较regex 到这个sgml引用,据我理解,实体引用应该以;结尾,但我不太熟悉这个主题,所以我想问一问。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-27 23:14:11

reference end的语法生成如下:

代码语言:javascript
复制
[61] reference end =
  ( refc | ;
    RE ) ? (13) CR

这意味着以下内容被确认为_reference end_s:

  • REFerence关闭分隔符(引用语法中的;),正如您预期的那样
  • 创纪录的结局
  • Nothing (请注意在关闭括号后使用?元字符,这意味着REFC和RE都是可选的)

如果没有引用端,则引用结束于名称开始字符之后的第一个非名称字符,这是实体引用开放分隔符(ERO &)中输入的引用识别模式规则所要求的。

还请注意,ERO仅用于一般实体参考产品。

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

https://stackoverflow.com/questions/27043404

复制
相关文章

相似问题

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