HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Programming/Scripts (http://www.howtoforge.com/forums/forumdisplay.php?f=7)
-   -   REGEX expression to ignore commas in quotes (http://www.howtoforge.com/forums/showthread.php?t=24955)

tlsuess 9th July 2008 23:22

REGEX expression to ignore commas in quotes
 
Hey all,

I am not a pro at REGEX but I'm trying to find a way to do a preg_split command and have it split a string by commas (,) but not while it's within single-quotes (').

So it would match this:
Code:

1
2
4
'test,like,this,see'
5
6
'resume,coding'
7

from this:
Code:

1,2,4,'test,like,this,see',5,6,'resume,coding',7
Does anyone know of a REGEX pattern I can use or something I can throw into a preg_match call?

Thanks,
Todd

burschik 11th July 2008 09:22

It would be a good idea to tell us what language you are using, since not all regular expression implementations are created equal and since that knowledge might enable us to point out an alternative solution that might be possible in one language and not in another.

I'm pretty sure, for example, that you can not do what you want to do with real regular expressions, although it might be possible with pcres. Since you seem to be using php, allow me to suggest the following alternative to your approach:

HTML Code:

$input = "1,2,4,'test,like,this,see',5,6,'resume,coding',7";
preg_match_all("/'[^']+'|[^,]+/", $input, $output);
foreach ($output[0] as $string) {
  echo $string . "\n";
}


tlsuess 11th July 2008 09:35

Wow it works! I was trying out different patterns but I think this one nailed it.

Thanks for the help and yes I am using PHP. I forgot that REGEX differs between programming languages (only by minor details).


All times are GMT +2. The time now is 19:02.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.