微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

at符号(@)是否是有效的HTML / XML标记字符?

我正在使用正则表达式进行一些 HTML剥离(是的,我知道,永远不会用正则表达式解析HTML,但我只是剥离它,而且我也很遗憾不能使用任何外部库).我正在使用正则表达式食谱中的正则表达式,它运行得很好,除了我遇到这个问题:

在字符串Bob Saget< bobs@aol.com\u0026gt;中,我的正则表达式将电子邮件作为标记进行匹配. 所以我的问题是@符号是一个有效的XML或HTML标记字符吗? (我不是在询问它是否在属性中有效;我知道它是)如果不是,我将能够在我的正则表达式中成功排除它.

我不知道在哪里查看.我看了here,我认为在XML中,标签中不允许使用at符号;但是,我要感谢一些具体的证据.

解决方法

再看看 XML Specification

标签包括

'<' Name (S Attribute)* S? '>'

名称包括

NameStartChar (NameChar)*

NameStartChar包括

":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]

NameChar包括

NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

@符号是U 0040

因此@符号在NameChar或NameStartChar中无效,因此在名称中无效.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐