Re: preg_match and delimited strings
- From: siromega@xxxxxxxxx
- Date: 31 May 2006 10:54:13 -0700
Rik wrote:
I hate to be the bearer of bad tidings, but it will fail on single escaped
\":
$str = '"baz,\"bax", bay, foz, "a, b", "foo';
$expr="/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/";
$results=preg_split($expr,trim($str));
$res = preg_replace("/^\"(.*)\"$/","$1",$results);
print_r($res);
Array
(
[0] => "baz
[1] => \"bax"
[2] => bay
[3] => foz
[4] => "a, b"
[5] => foo
)
Properly nested, it can handle it:
$str = '"baz,\"bax\"", bay, foz, "a, b", foo';
Array
(
[0] => baz,\"bax\"
[1] => bay
[2] => foz
[3] => "a, b"
[4] => foo
)
Also a nice one is:
$str = 'bay, foz, "a, b", "fo\"o"';
Array
(
[0] => bay, foz, "a
[1] => b", "fo\"o"
)
Not a very robust one here.
But maybe it's OK for your data, it all depends how much you know for sure
about that.
Grtz,
--
Rik Wasmus
Indeed, that is correct. I'm going to have to chcek out my data and see
if it'll work. Do you happen to know if fgetcsv() properly handle the
single " ?
.
- References:
- preg_match and delimited strings
- From: siromega
- Re: preg_match and delimited strings
- From: Rik
- Re: preg_match and delimited strings
- From: siromega
- Re: preg_match and delimited strings
- From: Rik
- preg_match and delimited strings
- Prev by Date: Re: Handling exception question
- Next by Date: Does any one know how to use php to connect sybase 5.5?
- Previous by thread: Re: preg_match and delimited strings
- Next by thread: php function to call vbs
- Index(es):