我正在尝试建立一个验证系统,在该系统中检查字符串的格式正确。
所需的格式只能包含数字和破折号-
,并按照***-**-*****-**-*
3-2-5-2-1的顺序进行排序。
例如978-14-08855-65-2
我是否可以通过更改格式键Regex
来像使用电子邮件检查系统一样使用@"^([\w]+)@([\w])\.([\w]+)$"
电子邮件检查代码为
public static bool ValidEmail(string email, out string error)
{
error = "";
string regexEmailCOM = @"^([\w]+)@([\w])\.([\w]+)$"; // allows for .com emails
string regexEmailCoUK = @"^([\w]+)@([\w])\.([\w]+)\.([\w]+)$"; // this allows fo .co.uk emails
var validEmail = new Regex(email);
return validEmail.IsMatch(regexEmailCOM) || validEmail.IsMatch(regexEmailCoUK) && error == "") // if the new instance matches with the string, and there is no error
}
答案 0 :(得分:1)
正则表达式确实很适合这种情况。
一个可能的表达式是:
^\d{3}-\d\d-\d{5}-\d\d-\d$
这正好匹配由\d
分隔的5组唯一数字(-
)。使用大括号设置固定的重复次数。