regex for preg_split

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
A puzzle for you regular expression wizards out there.

Looking for a regex that will split up a string like the following on
any pipe (|) not inside brackets:

a b | a { b |{c | cd}} d | a b c

Correct result would be:

array ( [0] => 'a b', [1] => 'a { b |{c | cd}} d', [2] => 'a b c')

I've found a couple that get close, but nothing that quite does what
I'd like.

(Or is this better handled without regex?)


Re: regex for preg_split

On Wed, 24 Jan 2007 20:19:51 -0800, Tom wrote:

Quoted text here. Click to load it

The following appear to work, at least with your example and a couple of


Matches a space a pipe and a space NOT followed by zero or more word,
space, or left brace characters and one right brace.

Results in:

    [0] => a b
    [1] => a { b |{c | cd}} d
    [2] => a b c

YMMV of course. I imagine it's likely to break on more complex strings.


Site Timeline