标签: ruby regex
我正在处理一个脏数据源,它有一些我必须提取的键值对。例如:
名字= John姓氏= Smith家庭电话= 555-333-2345工作电话=电子邮件= john.doe@email.com Zip From = 11772 Zip To = 11782 First Name = John First Name = John
要提取名字,我正在使用这个正则表达式:
/First Name = ([a-zA-Z]*)/
如上所示重复名字的情况下如何防止多次匹配?
这是version of this on Rubular。
答案 0 :(得分:3)
match只会获得第一场比赛(您可以使用scan获取所有内容):
match
scan
str.match(/First Name = ([a-zA-Z]*)/).captures.first #=> "John"
(鉴于您的字符串位于str)
str
答案 1 :(得分:0)
[]也会给你第一场比赛:
str[/First Name = ([a-zA-Z]*)/, 1]
1表示第一个捕获组
答案 2 :(得分:0)
/ ^名字=([a-zA-Z] *)/
这也会奏效。只需添加^表示行的开头