我需要定期快递:
字母编号字母编号字母编号格式。
例如:"E7R8R9"
。
以下是我的代码:
string txt = "G1R1A3";
// Any Single Word Character (Not Whitespace) 1
string re1 = "[a-z][0-9][a-z][0-9][a-z][0-9]";
Regex r = new Regex(re1, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = r.Match(txt);
if (m.Success)
{
String w1 = m.Groups[1].ToString();
Console.Write("(" + w1.ToString() + ")" + "\n");
}
Console.ReadLine();
但是这段代码也匹配"GG1R1A3"
。
请帮忙。
答案 0 :(得分:3)
您的代码正在字符串中的任何位置搜索模式。如果要将其锚定到字符串的开头(和结尾),请使用^
和$
:
string re1 = "^[a-z][0-9][a-z][0-9][a-z][0-9]$";
答案 1 :(得分:1)
您可以使用此正则表达式更短的方式
string strRegex = @"^([A-Z]\d){3}$";
Regex myRegex = new Regex(strRegex);
string strTargetString = @"E7R8R9";
Match myMatch = myRegex.Match(strTargetString);
if (myMatch.Success)
{
// Add your code here
}
答案 2 :(得分:0)
您的正则表达式仅匹配小写字母,但您的示例使用大写字母。
如果您只想匹配大写字母,请使用:
[A-Z][0-9][A-Z][0-9][A-Z][0-9]
如果您想匹配大写和小写字母,请使用:
[a-zA-Z][0-9][a-zA-Z][0-9][a-zA-Z][0-9]
答案 3 :(得分:0)
ibhub:你的尝试只考虑小写:尝试运行你的正则表达式不区分大小写或使用[a-zA-Z]
而不是[a-Z]