0

我正在处理一个脏数据源,它有一些我必须提取的键值对。例如:

名字 = John 姓氏 = Smith 家庭电话 = 555-333-2345 工作电话 = 电子邮件 = john.doe@email.com 邮编自 = 11772 邮编至 = 11782 名字 = John 名字 = John

为了提取名字,我使用了这个正则表达式:

/First Name = ([a-zA-Z]*)/

如上所示,在名字重复的情况下,如何防止多次匹配?

这是Rubular 上的一个版本

4

3 回答 3

3

match只会得到第一场比赛(你会用scan得到所有):

str.match(/First Name = ([a-zA-Z]*)/).captures.first
#=> "John"

(鉴于您的字符串在str

于 2012-07-30T03:05:26.557 回答
0

[] 也会给你第一场比赛:

str[/First Name = ([a-zA-Z]*)/, 1]

1 表示第一个捕获组

于 2012-07-30T04:08:20.527 回答
0

/^名字 = ([a-zA-Z]*)/

这也可以。只需添加 ^ 表示行首

于 2012-07-30T10:24:43.760 回答