2012-09-21 139 views
1

我想爆炸像这样的字符串爆炸的字符串:通过正则表达式

([a:b:c:d:...]) 

我有部分作品

([^\(\[\]\):])+ 

一个代码,但它的效果并不理想,因为我需要做确保找到的字符串在([])标签内。但是,只要我将它们添加到正则表达式中,就会停止工作(找不到任何匹配)。

\(\[([^\(\[\]\):])+\]\) 

我在做什么错? 我使用这个网站,以测试它们的正则表达式

http://myregextester.com/index.php

预先感谢您。

+0

/拆分为什么你想一次性做到这一点?剥离'(['和'])'然后爆炸':' – mpen

+0

“爆炸”对您意味着什么?对于你给出的字符串,预期的输出是什么?你在用什么语言? –

+1

对不起,这是PHP。这是一个在PHP中爆炸字符串的常见术语。它意味着使用分隔符将字符串拆分为数组。 – miroki123

回答

1

我会做两个部分,第一匹配括号

\(\[([^)\]]*)\]\) 

这将对内的内容中matches[1]之间的东西,然后简单地发生爆炸:

+0

你的方法似乎有效。但为什么不能一蹴而就呢? – miroki123

+0

@ miroki123:怎么样?你想冒号爆炸,但你想放弃括号。这是一个两步过程。 *除非*你不“爆炸”而是“匹配”中间的东西,但这种方法对我来说似乎更简单。 – mpen

+0

工作比我希望的要好得多。谢谢。 – miroki123