"
400-669-4525
\r\n\r\n15001787892
\r\n\r\n \r\n" 请问如何使用正则表达式将里面的电话号码全部匹配出来。分别是 m[1] 和 m[2]
m = /^<p>(\d+-\d+-\d+).+<p>(\d+)/.match(%q[<p>400-669-4525</p>\r\n\r\n<p>15001787892</p>\r\n\r\n<div id=\"xunlei_com_thunder_helper_plugin_d462f475-c18e-46be-bd10-327458d045bd\"> </div>\r\n")])
m[1]
# => 400-669-4525
m[2]
# => 15001787892
15021170067 15001787892 15001787892 15001787892
\r\n\r\n15001787892
\r\n\r\n\r\n\r\n
15001787892
\r\n\r\n \r\n15021170067 400-695-8541 15001787892 15001787892
\r\n\r\n400-665-5632
\r\n\r\n\r\n\r\n
15001787892
\r\n\r\n \r\n不知为何,我发现 match 总是匹配第一个就返回了,用 scan 将其全部查找出来:
a = "<p>15021170067 400-695-8541 15021170067 15021170067</p>\\r\\n\\r\\n<p>400-665-5632</p>\\r\\n\\r\\n<p> </p>\\r\\n\\r\\n<p>15021170067</p>\\r\\n\\r\\n<div id=\\\"xunlei_com_thunder_helper_plugin_d462f475-c18e-46be-bd10-327458d045bd\\\"> </div>\\r\\n"
b = []
re = /\d{11}|\d+-\d+-\d+/
a.scan(re) { |x| b << x}
a.match re
=> #<MatchData "15021170067">
这样就可以了,请问如何开启 match 全部匹配的模式,默认好像职匹配第一个。我 ruby 的版本是 2.1.5,难道是新特性?