正则表达式(数字+空格+字母)

时间:2015-11-25 09:45:47

标签: regex xsd

我写xsd文件并需要正则表达式来验证我的字符串。我验证了有效的枪支范围。它必须像100米。我是正则表达式的新手,写得像^\d*\w*[m]?,但它不起作用。我希望你的帮助!

谢谢,Vika!

3 个答案:

答案 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]" />