Ruby中的基本匹配
我正在阅读一本书,书中给出了这个例子Ruby中的基本匹配,ruby,regex,Ruby,Regex,我正在阅读一本书,书中给出了这个例子 x = "This is a test".match(/(\w+) (\w+)/) 我们正在查看括号并能够访问单独传递的内容 当我将上述表达式放入IRB时,我得到: MatchData“这是”1:“这”2:“是”> 为什么这不包括a和Test 是否必须包含.match(/(\w+)(\w+)(\w+)(\w+)/)?该“match”方法与正则表达式不全局匹配。这只是第一场比赛的结果。您可以使用“scan”方法而不是“match”,它应该返回一个包含正则表达
x = "This is a test".match(/(\w+) (\w+)/)
我们正在查看括号并能够访问单独传递的内容
当我将上述表达式放入IRB时,我得到:
MatchData“这是”1:“这”2:“是”>
为什么这不包括a
和Test
是否必须包含
.match(/(\w+)(\w+)(\w+)(\w+)/)
?该“match”方法与正则表达式不全局匹配。这只是第一场比赛的结果。您可以使用“scan”方法而不是“match”,它应该返回一个包含正则表达式所有匹配项的数组
[~]$ irb
1.8.7-p371 :001 > x = "This is a test".match(/(\w+) (\w+)/)
=> #<MatchData "This is" 1:"This" 2:"is">
1.8.7-p371 :002 > x = "This is a test".scan(/(\w+) (\w+)/)
=> [["This", "is"], ["a", "test"]]
[~]$irb
1.8.7-p371:001>x=“这是一个测试”。匹配(/(\w+)(\w+)/)
=> #
1.8.7-p371:002>x=“这是一项测试”。扫描(/(\w+)(\w+)/)
=>[[“这”、“是”]、[“一”、“测试”]]
是的,它只匹配您指定的前两个单词,如果您想要所有单词对,请使用类似于:“这是一个测试”。扫描(/(\w+)\s+(\w+)
太棒了,我知道您在用它做什么了。很有道理,谢谢!