任何人都可以帮我写一个正则表达式,它可以在长字符串中找到以下所有实例>
type="array" count="x" total="y"
其中x和y可以是1到100之间的任何数字。
语言是红宝石。
答案 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)")