2010-07-25 54 views
2

我必须写一个参数解析器,它作为一个字符串传递ala {a,b,c}分隔符是后面有一个空格的逗号,但它可以用管道转义“|”在它之前。所以我想写一个像/[^\|], /这样的正则表达式来分割,然后去掉所有的转义字符。但是当使用它时,它也会在分隔符之前被字符分割。红宝石拆分正则表达式的一部分

我应该如何去完成我在找的东西?

回答

3

如果您使用的是Ruby 1.9版本,则可以拆分/(?<!\|),/

(?<!\|)是一个负面的lookbehind断言,意思是“确保前面的字符不是|”。

+0

啊!我一直在使用Rubular来测试我的正则表达式,它并没有提到它,所以我从来不知道它。谢谢! – Randuin 2010-07-25 20:20:20

+0

据我所知,Rubular使用Ruby 1.8的正则表达式引擎,但它并不知道向后看。 – 2010-07-25 20:29:11