我无法理解如何制作正则表达式例如我有掩码:xxxx-xxxx-xxxx其中"x"可以是az或AZ或0-9
并有代码:
string[] numbers =
{
"1a3F-5t5C-FIG0-InFo",
"444-234-2245",
"444.-2344-2245",
};
string sPattern = "^[a-z0-9A-z]{4}-[a-z0-9A-z]{4}-[a-z0-9A-z]{4}$-[a-z0-9A-z]{4}$";
var validList = new List<string>();
foreach (string s in numbers)
{
if (Regex.IsMatch(s, sPattern))
{
validList.Add(s);
}
}
Assert.IsTrue(validList.Count==1);
Run Code Online (Sandbox Code Playgroud)
但它不起作用......我在表达方面有一些错误.你能解释一下为什么是错的吗?
我想到两件事:"a-z0-9A-z"应该是"a-z0-9A-Z"(注意大写字母Z),你在表达式中间有一个$,不应该在那里.看起来你的面具目前正试图匹配四组xxxx而不是三组.
尝试修复这三件事,然后在遇到问题时更新问题.
我个人会Regex为模式创建一个实例,顺便说一下:
Regex regex = new Regex(
"^[a-z0-9A-Z]{4}-[a-z0-9A-Z]{4}-[a-z0-9A-Z]{4}$");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4090 次 |
| 最近记录: |