Ruby中的正则表达式帮助

时间:2011-06-10 14:15:38

标签: ruby regex

任何人都可以帮我写一个正则表达式,它可以在长字符串中找到以下所有实例>

type="array" count="x" total="y"

其中x和y可以是1到100之间的任何数字。

语言是红宝石。

2 个答案:

答案 0 :(得分:5)

首先,由于我们将两次使用正则表达式,我们将其保存为自己的变量。请注意,number正则表达式由三个单独的部分组成:一位数字,两位数字和三位数字。在尝试使正则表达式匹配一系列数字时,这是一个很好的经验法则。否则很容易出错(允许像"07"这样的字符串。)

一旦你拥有了number正则表达式,剩下的就很容易了。

number = /[1-9]|[1-9][0-9]|100/
regex  = /type="array" count="#{number}" total="#{number}"/
string.scan(regex)

答案 1 :(得分:1)

这将返回一系列匹配

long_string.scan(/type="array" count="(?:[1-9]\d?|100)" total="(?:[1-9]\d?|100)")