我試圖寫一個方法來翻出每一個從大的文本文件相匹配的條件字符串:字符串匹配的正則表達式的語法問題
- 每個元素都用逗號分隔
- 第5個要素可以是從1-59
- 任何數目的下一個21個元素應該是數字1-5
- 下一個27個元件可以是真或假(否帽)
- 最後5個元素是整數1 -5
我的代碼:
#this string should be returned by the regex matching
str="3,15,14,31,40,5,5,4,5,3,4,4,5,2,2,2,1,2,1,1,3,3,3,2,4,3,false,false,false,false,false,true,false,true,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false,false,3,3,3,2,3"
matchResult=/[1-59]{5}[1-5]{21}[true|false]{27}[1-5]{5}/.match(str)
matchResult.each{|x| #this doesnt work....why?
puts x
}
- 什麼是打印所有匹配的正確方法是什麼?
matchResult.each
引發錯誤。我認爲它返回了一串匹配。 - 如何調整我的正則表達式以期望每個值之間的逗號(不在字符串的末尾)?
我的一些字符串在開始時可能有逗號。有沒有辦法爲此調整正則表達式?我試過:(/ ^(?:[,] *)(?:[1-5] \ d | [1-9])(?:,(?:[1-5] \ d | [1-9 ])){4}(:,[1-5]){21}(:,(?:真|假)){27}(:???,[1-5]){5} $ /)但沒有工作 – Rilcon42 2015-03-31 03:30:17
你的字符串是怎樣的? – 2015-03-31 03:31:52
str =「,3,15,14,31,40,5,5,4,5,3,4,4,5,2,2,2,1,2,1,1,3,3,3 ,2,4,3,假的,假的,假的,假的,假的,真的,假的,真的,假的,假的,假的,假的,假的,假的,假的,真的,假的,假的,假的,假的,假的,假的,假,假,假,假,假,3,3,3,2,3「 – Rilcon42 2015-03-31 03:34:28