From: Robert Klemme Date: 2008-06-18T15:38:52+09:00 Subject: Re: regex: splitting conditionally on | On 18.06.2008 00:04, computorist wrote: > I'm parsing mediawiki markup and I'd like to split a multi-line string > on | (vertical-bar), but only if it isn't contained w/in another > pattern. > > | name1 = value1 > | name2 = value2 | name3 = value3 > | name4 = [[foo|bar]] > > I'd like String.split(/pattern/) to return ['name1 = value1','name2 = > value2','name3 = value3','name4 = [[foo|bar]]'] > > I've working on a negative look-ahead pattern without success and my > brain is tired. > > Thanks for any suggestions Without testing, something like this might work: str.scan %r{ (?: \[ [^\]]* \] | [^|] )+ }xm Cheers robert