我想验证文本框是否只包含介于0
和10
之间的数字。
这是我目前使用的正则表达式:
@"^([0-9]|10)"
但它只与0-9
匹配。我应该如何更改才能使其与10
匹配??
谢谢!
发布于 2011-02-15 21:38:10
来自10
的1
由[0-9]
匹配,因为正则表达式引擎从左到右匹配。由于您只锚定了输入的开始部分:^
,因此如果1
匹配,引擎就会满意。
有两种解决方案。
1-交换:
@"^(10|[0-9])"
或
2-使用$
锚定它
@"^([0-9]|10)$"
发布于 2011-02-15 21:40:09
^(10|[0-9])
因为0-9最先匹配的是10中的1。
发布于 2011-02-15 21:41:02
它可能是“懒惰的”,匹配第一个潜在的匹配,即"1“对"10”。也许可以试着交换一下顺序:
"^(10|[0-9])"
这意味着正则表达式将首先检查'10‘,只有当没有'10’时才会检查0-9
如果这不起作用,可能会有一个标记可以
https://stackoverflow.com/questions/5004291
复制相似问题