我写xsd文件并需要正则表达式来验证我的字符串。我验证了有效的枪支范围。它必须像100米。我是正则表达式的新手,写得像^\d*\w*[m]?
,但它不起作用。我希望你的帮助!
谢谢,Vika!
答案 0 :(得分:2)
您似乎想要^\d+\s*m?$
这就是它的含义:
^
:字符串的开头\d+
:有些数字\s*
:一些空格(可能没有)m?
:" m"字母,可选([m]?
正在做同样的事情,但当你只想要一个字母时,一个类是无用的)$
:字符串如果您的要求略有不同,例如当您不希望空格或m字母是可选的时,它很容易适应。我建议你在使用之前检查一下你是否真正理解这个正则表达式。
请注意,字符串边界在XSD架构模式中通常无用,因此如果我理解您的问题,您可以使用\d+\s*m?
。
答案 1 :(得分:0)
\w
表示任何单词字符(字母,数字,下划线),因此\w
不会按照您的想法执行。
你的正则表达式看起来像这样:
`^\d+\s*m?`
说明:
^
- 字符串/行的开头(取决于多行的m
等任何标志)\d+
- 匹配[0-9]
的简写,例如任何数字。 +
使其成为一个或多个匹配。\s*
- 匹配包含标签等的空白字符... *
使其为零次或多次m?
- 匹配文字m
字符并将其设为?
我用来构建正则表达式并使用备忘单的参考资料和工具:
两个非常好的工具可以帮助您轻松创建更强大的正则表达式,并提供有关内容的正确解释。
答案 2 :(得分:0)
在XSD中,您可以为空间添加XSD模式,如下所示:
xsd:pattern value="[a-zA-Z0-9\s]" />