我想使用.NET的Regex.IsMatch函数来确定一个字符串是否长8个字符并匹配表达式AK-\d\d\d\d[fF]
。因此,AK-9442F
会匹配但不匹配AK-9442F2
或AK-9442
。我将如何构建表达式?
答案 0 :(得分:4)
使用静态Regex.IsMatch,您可以:
if (Regex.IsMatch(myTestString, @"^AK-\d{4}[fF]$")) {
// passed
}
应该适合您的目的。细分,是:
^ # must match beginning of the string
AK- # string literal, "AK-"
\d{4} # \d is digit, {4} means must be repeated 4 times
[fF] # either upper or lowercase F
$ # must match end of string
答案 1 :(得分:4)
使用此模式:^AK-\d{4}[Ff]$
^
匹配字符串的开头,$
匹配字符串的结尾。这可确保整个字符串必须匹配并避免任何部分匹配。 \d{4}
恰好匹配4位数。
string pattern = @"^AK-\d{4}[Ff]$";
bool result = Regex.IsMatch("AK-1234F", pattern);
Console.WriteLine(result);
答案 2 :(得分:3)
Regex.IsMatch(myString, @"^AK-\d{4}[fF]$")
答案 3 :(得分:0)
你已经拥有它。
这样的事情应该有效:
^AK-[0-9]{4}[Ff]$