xsd文件中的html正则表达式验证

时间:2019-08-05 10:17:57

标签: regex xsd

我已经编写了正则表达式来验证我的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。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

删除^$锚点是正确的步骤,因为XmlSchema regex旨在匹配整个字符串输入^$不会像大多数(即使不是全部)其他正则表达式一样被视为字符串元字符的开始/结束。

与1个或多个[https?]+htps字符匹配的?必须转换为{{ 1}}匹配https?,可选http

您不需要转义s,将/变成\/

此外,末尾的/应该是可选的,添加/.*量词。

使用

?

一些用法:

https?://([^/:]+\.[a-zA-Z]{2,10}|([0-9]{1,3}\.){3}[0-9]{1,3})(:[0-9]+)?(/.*)?