2014-02-24 56 views

回答

2

请试试这个:

<xs:element name="someString"> 
    <xs:simpleType> 
    <xs:restriction base="xsd:string"> 
     <xs:pattern value="([\w]*[\.\,\-]?[\w]*[\.\,\-]?[\w]*[\.\,\-]?[\w]*)"/> 
     <xs:length value="23"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

说明:

[\w\.\,\-]{0,20}匹配单个字符出现在下面的列表中

  • 量词:

    0到20之间次,如很多时候,尽可能需要回馈[贪婪]

    • \ W匹配任何单词字符[A-ZA-Z0-9_]
    • \。匹配的字符.literally
    • \,该字符相匹配,从字面上
    • \ - 匹配字符 - 从字面上

所以基本上这将匹配所有这些

  1. aabbbcaabbbcaabbbcac ,, -
  2. ,, - aabbbcaabbbcaabbbcac
  3. dd,aabbbc-aabbbc,aabbbc

length value="23"力的总串是23个字符和正则表达式力量的总长度的三个字符是逗号,连字符和时段之间。

+0

你能解释一下吗?什么是\ W,为什么它应该起作用?谢谢。 –

+1

@YevgeniGrinberg我添加了解释。你也可以在http://regex101.com/ – DhruvJoshi

+0

这里试试这个,它不限制字母数量为20,数字为。, - 为3. –