gpt4 book ai didi

c# - XSD :Pattern and C# Regex?之间有区别吗

转载 作者:太空狗 更新时间:2023-10-29 21:54:45 26 4
gpt4 key购买 nike

由于一些限制性原因,我无法真正深入研究我的项目。

本质上,我试图在序列化对象之前预先验证一个对象,然后根据模式对其进行验证。该模式对名称进行了验证,我知道这并不理想,您最好不要验证名称 - 但我似乎无法为该模式尝试执行的操作复制有效的正则表达式。

<xsd:simpleType name="CharsetD">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Za-z \-&apos;]*"/>
</xsd:restriction>
</xsd:simpleType>

<xsd:element minOccurs="0" maxOccurs="2" name="Fore">
<xsd:simpleType>
<xsd:restriction base="CharsetD">
<xsd:minLength value="1"/>
<xsd:maxLength value="35"/>
<xsd:pattern value="[A-Za-z].*"/>
</xsd:restriction>
<xsd:simpleType>
</xsd:element>

在上述情况下,我只是想我可以尝试使用 xsd:pattern 作为 charset

我尝试使用 [A-Za-z\-']* 返回的名称如 Luke2 是有效的,但模式验证表明它是无效的'因为它包含一个数字。

我的问题是,如何在单个 c# 正则表达式中复制上述内容?此外,与我在 .NET 中使用模式模式相比,模式模式的运行方式是否有任何差异,我可以在未来注意这一点?

最佳答案

我发现了这个问题,虽然是伪装的,因为我没有真正广泛地使用 XML Schema

区别

CharsetD 类型不仅仅使用模式,因为它本身不足以验证带有数字的名称,所以当我尝试仅使用模式时 - 它允许使用数字。然而,类型上有一行限制数字,因此模式返回正则表达式不返回错误的原因。

<xsd:restriction base="xsd:string">

解决方案

我创建了一个不同的单一正则表达式来满足在我的架构中应用的 string 限制。

^[\p{L} \.\-]+$

关于c# - XSD :Pattern and C# Regex?之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13951201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com