I'd like to extract the email addresses from the following input text:
Junk
more junk
Members:
member: user1@somedomain.com (user)
member: user2@somedomain.com (user)
member: user3@somedomain.com (user)
member: user4@somedomain.com (user)
member: user5@somedomain.com (user)
member: user6@somedomain.com (user)
even more junk
The addresses are consistently found between " member: " and " (user)". The following expression output an array of email addresses in an online regex tester:
/ member: (.*) /gi
I took the expression and made a function that matches the appropriate lines but includes "member: " in the output.
function test() {
var str = 'Junk\nmore junk\nMembers:\n member: user1@somedomain.com (user)\n member: user2@somedomain.com (user)\n member: user3@somedomain.com (user)\n member: user4@somedomain.com (user)\n member: user5@somedomain.com (user)\n member: user6@somedomain.com (user)\neven more junk';
var test = str.match(/ member: (.*) /gi);
}
Output:
[ member: user1@somedomain.com , member: user2@somedomain.com , member: user3@somedomain.com , member: user4@somedomain.com , member: user5@somedomain.com , member: user6@somedomain.com ]
I am fairly new to Regex but have experimented with positive and negative lookahead, but can't seem to find a combo that works.
Solution:
function regexExample() {
var myString = 'Junk\nmore junk\nMembers:\n member: user1@somedomain.com (user)\n member: user2@somedomain.com (user)\n member: user3@somedomain.com (user)\n member: user4@somedomain.com (user)\n member: user5@somedomain.com (user)\n member: user6@somedomain.com (user)\neven more junk';
var myRegexp = / member: (.*) /gi;
var match = myRegexp.exec(myString);
while (match != null) {
Logger.log (match[1]);
match = myRegexp.exec(myString);
}
}