我对正则表达式比较陌生,但仍在苦苦挣扎。目前,重复是我沮丧的根源。我被要求编写一个正则表达式匹配格式为 +447 的手机号码,然后是一个 9 位数字的字符串。经过一番阅读,我想出了:
string num = @"+447123456789";
string reg = "^[+447]([0-9]{9})$";
Regex filter = new Regex(reg);
假设它被读取,必须以 +447([...] 指定要匹配的显式字符)开头,后跟任何 9 位数字 0-9,但是 filter.IsMatch(num) 总是返回假。我尝试用 + 替换 {9} 并返回 true,尽管它在应该失败时也返回 true(即 num 保持值“+4”)。
鉴于我的结果,我想我误解了 [...] (否则简单的 +4 不应该返回 true)和 {...} (我理解它是指前面的序列(在在我的例子中,[0-9]) 重复了 ... 次,在我的例子中,重复了 9 次)。
非常感谢任何帮助, 提前致谢, CprlKleg
请您参考如下方法:
尝试 string reg = "^\+447([0-9]{9})$"; 或 string reg = "^\+447(\d{9} )$";
