【发布时间】:2013-07-18 10:25:22
【问题描述】:
我对正则表达式相对较新,并且仍在努力。目前,重复是我沮丧的根源。我被要求编写一个匹配 +447 格式的手机号码的正则表达式,然后是一个 9 位数的字符串。经过一番阅读,我想出了:
string num = @"+447123456789";
string reg = "^[+447]([0-9]{9})$";
Regex filter = new Regex(reg);
假设它已被读取,必须以 +447([...] 指定要匹配的显式字符)开头,后跟任意 9 位数字 0-9,但 filter.IsMatch(num) 始终返回 false。我尝试用 + 替换 {9} 并返回 true,尽管它在应该失败时也返回 true(即 num 保持值“+4”)。
鉴于我的结果,我认为我误解了 [...] (否则简单的 +4 不应返回 true)和 {...} (我理解它是指前一个序列(在我的情况,[0-9])重复...次,在我的情况下,9)。
非常感谢任何帮助, 提前致谢, CprlKleg
【问题讨论】:
-
[+447] 表示 +、4 或 7 之一。并非所有“+447”
-
感谢您的评论,我今天学到了一些东西。