python - 此正则表达式对于 xsd :anyURI 是否正确

标签 python regex url

我正在实现一个函数(在 Python 中),用于检查字符串与 xsd:anyURI 的一致性。

根据Schema Central仅检查重复、连续和非连续的 # 字符和 % 后跟十六进制字符 0-Ff 以外的内容才有意义。

到目前为止,我有类似的东西并且它似乎有效:

if uri.search('(%[^0-9A-Fa-f]+)|(#.*#+)')

多个“#”符号的第二个表达式可能有问题。

最佳答案

如果您的目标是根据 Schema Central 解析器要求排除正则表达式,那么您就快成功了。前半部分,排除后面没有两个十六进制数字的百分号,最好使用否定前瞻断言来解决;后半部分很好,尽管您可以放弃最后一个重复指示器而不影响您的结果:

(%(?![0-9A-F]{2})|#.*#)

编译您的正则表达式,使其独立于大小写(i 标志),然后您就可以开始了。

推荐阅读:Python 标准库的 chapter on Regular Expression Operation Syntax .

关于python - 此正则表达式对于 xsd :anyURI 是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466585/

相关文章:

python - pandas.DataFrame.to_csv : selectively apply date_format by column

javascript - 如何解决十进制验证代码中的错误?

javascript - 在每个数字处分割一个字符串

java - 如何使用JSP从URL中获取参数

python - Flask url_for ('index' , _external=True) 创建具有双ip的url?

python - Django 忽略测试数据库设置

python线程不起作用

python - Django:如何解决 "Keyword can' t 是一个表达式“错误

java - 难以在分隔符处分割字符串并保留它

html - 在后台HTML网页中播放远程音频