如何解决正则表达式用于XSD中的模式匹配
我正在编写XSD模式限制,并且具有以下有效的字符串
- $ name
- {。newvalue}
- {测试}
- $ name.testing
以下内容无效
- {$ testing}
- $ testing}
- {测试
不允许使用大写字母或@符号。
我已经部分<xs:pattern value="\{\w?[a-z0-9A-Z\.]*\}|\$\w+(\.[\w]+)*"/>
尝试过这项工作,但不满足所有条件
感谢您的帮助。
解决方法
您可以使用
<xs:pattern value="\$[a-z0-9]+(\.[a-z0-9]+)*|\{\.?[a-z0-9]+\}" />
XSD正则表达式始终固定在字符串开始/结束处,请参见regex demo。
详细信息
-
\$[a-z0-9]+(\.[a-z0-9]+)*
-$
,一个或多个小写ASCII字母,然后是零或mre的点序列以及一个或多个小写ASCII字母 -
|
-或 -
\{\.?[a-z0-9]+\}
-{
,一个可选的.
,然后是1个或多个小写ASCII字母,然后是}
字符。
尝试\{?\$?[a-z.]+\}?
弄清楚实际规则是不容易的:您尝试的正则表达式允许使用数字,但是没有一个示例使用数字。并且您尝试使用的正则表达式明确允许使用大写字母,但是您的文字表明不允许使用大写字母。为什么要特别提及“ @”,而不提及其他标点字符?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。