何恰好匹配6或8或10位数字?Regexp,如何精确地
"787876" =~ /^\d{6}$/ -> TRUE
"78787633" =~ /^\d{8}$/ -> TRUE
"7878733226" =~ /^\d{10}$/ -> TRUE
"7878736" =~ /^\d{6}$/ -> FALSE
何来创建这些情形之一的正则表达式。的 较短的形式:
"787876" =~ /^\d{6}$|^\d{8}$|^\d{10}$/
何恰好匹配6或8或10位数字?Regexp,如何精确地
"787876" =~ /^\d{6}$/ -> TRUE
"78787633" =~ /^\d{8}$/ -> TRUE
"7878733226" =~ /^\d{10}$/ -> TRUE
"7878736" =~ /^\d{6}$/ -> FALSE
何来创建这些情形之一的正则表达式。的 较短的形式:
"787876" =~ /^\d{6}$|^\d{8}$|^\d{10}$/
使用这个表达式^\d{6}(\d{2}){0,2}$
您能解释我这个问题吗? – plewas 2012-08-02 11:06:57
6位数字,后面跟零,一组或两组数字。 – 2012-08-02 11:48:52
另一种解决方案:/^\d{10}|\d{8}|\d{6}$/
我能想到的最短的形式是这样的:
/^(\d\d){3,5}$/
这是3至5双数字。
如果你正在处理海量数据,这可能是一个不错的选择,因为它没有括号来运行子匹配并存储子结果。
/^\d{2}{3,5}$/
恕我直言,有写一个正则表达式的两个原则:
'string =〜/ \ A \ d + \ z/&& [6,8,10] .include?(string.size)' – 2012-08-02 10:53:18