Re: Extracting Strings
- From: Leigh Finch <feiyang83@xxxxxxxxx>
- Date: Sun, 01 Jun 2008 21:10:58 +1000
kenoli wrote:
On May 31, 5:30 pm, Leigh Finch <feiyan...@xxxxxxxxx> wrote:kenoli wrote:This is probably much simpler than I'm making it, and seems likeHi Kenoli,
something that is done all the time, but I can't find a combination of
regular expression and php function that does it.
I want to extract the data in the following string:
"Person Name" <em...@xxxxxxx>
that is between the "" and the <> characters.
In this case I want to extract:
Person Name and em...@xxxxxxx
so I can assign the results to a variable or array. I want to extract
each string separately.
If someone can help me construct the script/regular expression to do
this, I would appreciate it.
Thanks,
--Kenoli
I'm no expert at regular expressions, but I found the following workable
solution.
1 <?php
2 $string = '"Name" <em...@xxxxxxxxxx>';
3
4 preg_match("/<([a-z0-9.@]+)>/i", $string, $matches);
5
6 var_dump($matches);
7 ?>
String refers to the string you would like to extract.
preg_match is the function you will use, to do the regex.
/<([a-z0-9.@]+)>/i is the regelur expression to match against
The characters in the square brackets are the characters to match
against, you can add more to include other valid email characters ascii
7 bit chars iirc.
$matches is the matches, in this case you want match number 1 if it
exists because it is the match inside the parenthesis.
Anyone please feel free to correct me if required.
Hope this helps, Cheers
Leigh Finchwww.phpmaniac.net
Leigh, thanks. That works great for the email address. Do you have
any idea how I get the text between the " "? I tried replacing the
carats with the quote marks, even preceding them with escape
characters and can't get it to work.
Thanks,
--Kenoli
Hi Kenoli,
The following should give you both variables you are after in the same bit of code.
Array element 1 is the name
Array Element 2 is the email address
1 <?php
2 $string = '"Test Name" <email@xxxxxxxxxx>';
3
4 preg_match("/^\"([a-z0-9.@\ -.]+)\" ?<([a-z0-9.@-_]+)>/i", $string, $matches);
5
6 var_dump($matches);
7 ?>
--
Hope this helps, Cheers
Leigh Finch
www.phpmaniac.net
.
- Follow-Ups:
- Re: Extracting Strings
- From: kenoli
- Re: Extracting Strings
- References:
- Re: Extracting Strings
- From: Leigh Finch
- Re: Extracting Strings
- From: kenoli
- Re: Extracting Strings
- Prev by Date: Re: Extracting Strings
- Next by Date: Re: Extracting Strings
- Previous by thread: Re: Extracting Strings
- Next by thread: Re: Extracting Strings
- Index(es):
Relevant Pages
|