何恰好匹配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