我试图写一个方法来翻出每一个从大的文本文件相匹配的条件字符串:字符串匹配的正则表达式的语法问题
- 每个元素都用逗号分隔
- 第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