Regex XSD正则表达式验证失败:意外的元字符
这个片段Regex XSD正则表达式验证失败:意外的元字符,regex,xsd,Regex,Xsd,这个片段 <xsd:element name="HomePhone" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="^+[0-9]{1,2}-[0-9]{1,2}-[0-9]{3}[0-9]{0,1}-[0-9]{3}[0-9]{0,1}$"></xs
<xsd:element name="HomePhone" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="^+[0-9]{1,2}-[0-9]{1,2}-[0-9]{3}[0-9]{0,1}-[0-9]{3}[0-9]{0,1}$"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
正在返回错误
XSD:正则表达式
'^+[0-9]{1,2}-[0-9]{1,2}-[0-9]{3}[0-9]{0,1}-[0-9]{3}[0-9]{0,1}$'
无法在位置1验证:
意外的元字符
你知道怎么了吗
提前谢谢
^ Start of line
+ preceding character one or more times
没有“前置字符”
没有“前置字符”。在XML模式regex flavor中,所有匹配项都隐式地锚定在两端,因此不需要添加
^
和$
。根据规范,这两个字符应该被视为文本。但是如果是这样,正则表达式中的^+
将尝试匹配一个或多个^
字符,而不是抛出异常
我怀疑,尽管有规范,它们仍被视为锚点。而且多次匹配锚点是没有意义的,因此
+
被视为错误。想一想,在任何情况下,在那个位置有一个量词都是没有意义的;+
应该做什么?无论如何,如果删除该字符,正则表达式应该可以工作。在XML模式正则表达式风格中,所有匹配项都隐式地锚定在两端,因此不需要添加^
和$
。根据规范,这两个字符应该被视为文本。但是如果是这样,正则表达式中的^+
将尝试匹配一个或多个^
字符,而不是抛出异常
我怀疑,尽管有规范,它们仍被视为锚点。而且多次匹配锚点是没有意义的,因此+
被视为错误。想一想,在任何情况下,在那个位置有一个量词都是没有意义的;+
应该做什么?无论如何,如果删除该字符,正则表达式应该可以工作