Email parsing - help please

Hi all,

Imagine the following string of data containing

d = "Bloggs Joe <joe.bloggs@domain-a.com>, Bloggs Keith
<keith.bloggs@domain-a.com>, Bloggs, Mary <mary.bloggs@domain-a.com>,
tim.bloggs@domain-a.com"

As you can see the format of the email addresses is not consistant, for
that reason, I want to parse this string of data and seperated each
address with a pipe (|).

I have found a solution in java like so:

javax.mail.internet.InternetAddress.parse(d).map { |add| add.toString()
}.join('|')

This works pretty well, however I cannot find a Ruby alternative. I have
tried TMail, using the following:

TMail::Address.parse(d).map{ |add| add.toString() }.join('|')

This however fails as I cannot call map because the data is not in an
array.

Does anyone have any suggestions? I would really appreciate any
guidance.

Thanks a lot.

···

--
Posted via http://www.ruby-forum.com/.

Stuart Clarke wrote in post #986733:

Hi all,

Imagine the following string of data containing

d = "Bloggs Joe <joe.bloggs@domain-a.com>, Bloggs Keith
<keith.bloggs@domain-a.com>, Bloggs, Mary <mary.bloggs@domain-a.com>,
tim.bloggs@domain-a.com"

As you can see the format of the email addresses is not consistant, for
that reason, I want to parse this string of data and seperated each
address with a pipe (|).

It's always puzzling why people like you don't just list the output they
want. For some reason you people feel a need to describe the output in
words rather than just listing the string you want to end up with.

d = "Bloggs Joe <joe.bloggs@domain-a.com>, Bloggs Keith
<keith.bloggs@domain-a.com>, Bloggs, Mary <mary.bloggs@domain-a.com>,
tim.bloggs@domain-a.com"

arr = d.scan(/<([^>]+)>/).flatten
result = arr.join('|')
puts result

--output:--
joe.bloggs@domain-a.com|keith.bloggs@domain-a.com|mary.bloggs@domain-a.com

···

--
Posted via http://www.ruby-forum.com/\.

Whoops. Part of the code got chopped off...it should read

    /xms).flatten

···

--
Posted via http://www.ruby-forum.com/.

7stud -- wrote in post #986830:

Whoops. Part of the code got chopped off...it should read:

    /xms).flatten

Thanks for the tip :wink:

That code works really well thanks, I did not really think to try
expressions.

Thanks again

···

--
Posted via http://www.ruby-forum.com/\.