正则表达式c# IsMatch()
本文关键字:IsMatch 正则表达式 | 更新日期: 2023-09-27 18:02:42
我尝试使用正则表达式来检查字符串是否只包含:0-9,a-z, a-z, ',/或-。我使用Regex validator = new Regex(@"[0-9a-zA-Z'-/]*");
,无论我引入什么字符串都是有效的。
检查如下:if(!validator.IsMatch(myString))
怎么了?
如果我明白你想要什么。我认为你的模式应该是
new Regex(@"^[0-9a-zA-Z'''-/]*$");
^
和$
符号分别是匹配字符串开头和结尾的锚点。如果没有这些,模式将匹配该类中包含任何字符的任何字符串。使用它们,它匹配只有包含该类字符的字符串。
您还指定要包含反斜杠字符,但原始模式在字符类中有'-
。这只是字符类中连字符的转义序列。要在字符类中包含反斜杠,您需要单独指定(也要转义)。因此生成的字符类有''
(反斜杠)和'-
(连字符)。
现在,这仍然会匹配空字符串,因为*
表示"零或更多"。如果您只想匹配非空字符串,请使用:
new Regex(@"^[0-9a-zA-Z'''-/]+$");
+
表示"一个或多个"
用+
代替*
new Regex(@"[0-9a-zA-Z'-/]+");
如果我写一个形式为
"[some character class]*"
它将匹配每个字符串。每个字符串包含0到多个字符类。
也许你想用
new Regex(@"[0-9a-zA-Z'-/]+")