0

抽出する必要があるいくつかのキーと値のペアを含むダーティ データ ソースを扱っています。例えば:

名 = ジョン 姓 = スミス 自宅電話 = 555-333-2345 勤務先電話 = 電子メール = john.doe@email.com 郵便番号 = 11772 郵便番号 = 11782 名 = ジョン 名 = ジョン

名を抽出するために、次の正規表現を使用しています。

/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 に答える