我已经编写了正则表达式来验证我的xml模式的url(它必须要求http(s)):
^[https?]+://([^/:]+\.[a-z]{2,10}|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]+)?(\/.*)?$
我现在正试图避免https://www.regular-expressions.info/xml.html的所有限制。我想出了这个:
[https?]+://([^/:]+\.[a-z]{2,10}|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]+)?[^>](\/.*)
,但仍然收到有关无效正则表达式的XMLSchemaParseError。你能帮我解决这个问题吗?
答案 0 :(得分:1)
删除^
和$
锚点是正确的步骤,因为XmlSchema regex旨在匹配整个字符串输入,^
和$
不会像大多数(即使不是全部)其他正则表达式一样被视为字符串元字符的开始/结束。
与1个或多个[https?]+
,h
,t
,p
或s
字符匹配的?
必须转换为{{ 1}}匹配https?
,可选http
。
您不需要转义s
,将/
变成\/
。
此外,末尾的/
应该是可选的,添加/.*
量词。
使用
?
一些用法:
https?://([^/:]+\.[a-zA-Z]{2,10}|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]+)?(/.*)?