我是正则表达式的新手,正尝试验证xml。我不断收到以下错误:
'^(?!\s+).{1,21}(?<!\s+)$'
不是有效的XML正则表达式。第一个?似乎是在造成错误
'\d{1,2}\/\d{1,2}\/\d{2,4}(\s\d{1,2}\:\d{1,2}\:\d{1,2}\s(am|Am|AM|pm|Pm|PM))?'
不是有效的XML正则表达式。第一个/似乎是在创建错误
'^\w([\w|\s|\:\-]{0,18}\w)?$'
不是有效的XML正则表达式。第一个:似乎是在创建错误
'^((V|v)?[1-9]|(N|n))$'
的值'1'不是有效的。
起始位置:3:291 感谢您的帮助。
答案 0 :(得分:1)
XML Schema中正则表达式的规则在XSD 1.0(或1.1)规范的附录中给出。与W3C XML Schema规范的其他部分不同,它们是合理可读的。此正则表达式方言不包含^
和$
锚作为元字符(由于隐式锚定了模式构面,因此不需要它们,因此不需要它们),并且不包含任何构造以(?
开头。
在第二个正则表达式中,XSD不允许转义不是元字符的字符,并且其中包括“ /”。
某些(所谓的)XML Schema处理器实际上并未尝试正确实现正则表达式规则。例如,Microsoft .NET处理器仅使用.NET regex方言。并非所有开发人员都意识到这一点,因此您可能会遇到无法移植到其他模式处理器的模式。