2013-03-19 33 views
1

我有串这样正则表达式解析插件{} widget.option1.option2.optionN

{widget-123-abc.option1.option2.optionN} 

我正则表达式:/widget-([0-9]{3})-([a-z|A-Z]{3})(.*)}/g

导致我正则表达式:

$a = array(
    [0] => widget-123-abc.option1.option2.optionN}, 
    [1] => 123, 
    [2] => abc, 
    [3] => .option1.option2.optionN 
) 

结果我想要的是:

$b = array(
    [0] => widget-123-abc.option1.option2.optionN}, 
    [1] => 123, 
    [2] => abc, 
    [3] => option1, 
    [4] => option2, 
    [..(N)] => option..(N), 
) 

是否有任何方式没有explode('.', $a[3]);

有没有任何正则表达式模式我可以使用? THX前

+0

是的,你可以使用替代(。*)的东西是这样的:([.a-zA-Z0-9])+ – gaussblurinc 2013-03-19 11:09:43

回答

1

是的,而不是内爆的你应该使用

explode('.', $a[3]); 
+0

对不起,implode ed发生爆炸。我想要的是正则表达式模式 – 2013-03-19 11:14:22

1

我认为,你可以使用这样的事情:

而是贪婪点:(.+)

你应该使用: ([.a-zA-Z0-9])+

+0

如果我使用这个[code]([.a-zA-Z0-9])+ [code] result成为: $ a = array( [0] => widget- abc.option1.option2.optionN}, [1] => 123, [2] => abc, [3] => N ) – 2013-03-19 11:15:46