0
我寫了我的第一個正則表達式和一個if
條件來檢查通過的def
參數循環。 它似乎沒有正常工作,並且我猜測我的正則表達式有問題。條件運行,但它說,當它符合我想要的模式時,該值與正則表達式不匹配,反之亦然。Ruby正則表達式在條件中沒有驗證嗎?
我需要的模式是這樣的:123456_12345_ABC_123
:
6 digits
underscore
5 digits (may include 0 padding)
underscore
3 upper case letters
underscore
3 digits (may include 0 padding)
這裏是我的代碼:
if ev_val.match(/[0-9]{6}(_)[0-9]{5}(_)[a-z]{3}(_)[0-9]{3}/)
puts "#{ev_val} matches required batch naming convention"
else
puts "#{ev_val} doesn't match required batch naming convention\nSTOPPING SCRIPT!!!"
exit
end
如果任何人有任何想法,我將不勝感激!
好,但你應該在'他可以包括0填充'的地方加'0 *''(除非我讀錯了) – pguardiario
謝謝你的迴應!我首先得到了\ d,但是我已經讀過它的確是1位數字,所以我認爲這就是爲什麼它不起作用。我也讀過圓括號,這就是爲什麼我把下劃線放在其中。看起來我有很多要學習的正則表達式!我一直在避免它,但我知道學習它會給我在編碼方面帶來很大的優勢。 是的,任何數字都是0填充(一直到第一個數字)。我會試着去看看。但如果有人知道速記,我非常感激。 –
沒關係。我想到了!/0 * \ d {6} _0 * \ d {5} _ [A-Z] {3} _0 * \ d {3} /謝謝! –