[thelist] Ereg

Matt Warden mwarden at gmail.com
Wed May 17 17:08:53 CDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Chris Price wrote:
> I am uploading a csv file to the server and then exploding it in php to give
> me data in arrays.
> 
> When an entry in the csv file has a comma in it, that entry is surrounded by
> double quotes which helps to differentiate a textual comma from a delimiting
> comma.
> 
> I want to escape the textual commas and delete the quotes before exploding
> the strings into arrays.
> 
> I figured I could find the occurrences of "foo,foo" using ereg and replace
> them with foo,foo but I'm not sure how I should do that or if there is a
> much simpler solution anyway.


Something like (for simplicity i'll assume you're just converting it
commas to \,):

$subject = 'HI, my name is, "Warden, Matt"';
$foo = preg_replace('/"([^",\]*),([^",]*)"/', '"${1}\,${2}"', $subject);

Should give you:

HI, my name is, "Warden\, Matt"

Untested. You may have to escape some of the things in the expression.
If you run the regex again on the resulting content, it shouldn't
re-escape the comma (that's what the slash in the first character class
is for).

hth,

- --
Matt Warden
Oxford, OH, USA
http://mattwarden.com


This email proudly and graciously contributes to entropy.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEa570rI3LObhzHRMRAoplAJ4sIpEVVnRrGCZDcJxveKaSI47i3wCgnZqf
KY2NJDSNF1naTRMQ8bXjnP4=
=gK9F
-----END PGP SIGNATURE-----



More information about the thelist mailing list