[英]Regex for Numbers, some special characters and NULL
我想创建一个正则表达式,将允许
0-9
.
>
<
%
,
-
NULL
所以我写了一个正则表达式,例如^[0-9.><%,-NULL]*$
这匹配NULL,但当用户仅输入N
时不匹配。 所以我做了^[0-9.><%,-(NULL)]*$
但我确实
string pattern = "^[0-9.><%,-(NULL)]*$";
Regex.Match("N", pattern).Success;
这会引发参数异常并说
`parsing "^[0-9.><%,-(NULL)]*$" - [x-y] range in reverse order.
那么正确的正则表达式应该是什么?
我认为您需要的表达式与此类似:
"^([-0-9.><%,]|NULL)*$"
这将匹配字符集中出现的零个或多个字符(在方括号内)和NULL
实例。
将NULL
设置为字符集的一部分还将分别匹配N
, U
和L
字符。 尝试使用(NULL)
进行分组不会达到预期的效果,但是会使字符集也与左括号和右括号匹配。
您提到的错误( [xy] range in reverse order
)是由于表达式中
"^[0-9.><%,-(NULL)]*$"
连字符被认为表示此字符范围: ,-(
。因为括号在逗号之前,所以字符范围被认为是相反的顺序。
要在字符集中表示连字符( -
),需要避免将其解释为表示字符范围。 通过将破折号放在字符集的开头或结尾,可以很容易地实现这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.