2012-08-13 32 views
-1

我有以下字符串:分割字符串转换成其预定的组件在PHP

!fun(10,20)

我试图把它分为以下组成部分:

!fun1020

!始终是第一个字符。 fun始终是!后面的3个字符,10将始终沿着一个开放式支架(20将始终沿着第一个逗号,之前的右括号。

我试过使用PHP的功能,但一直在撞墙撞我的头。我假设我可以使用正则表达式或类似方法来做到这一点。

+0

也许你需要regExp,你想分割什么字符串? – Zerstoren 2012-08-13 14:06:36

+4

你是说字符串总是以字符“!fun(”和以“)”结尾?如果这些从不改变,那么它可能是最快的,只是使用strstr分割字符串并爆炸,否则你可以使用像/再问 – moopet 2012-08-13 14:07:25

+0

这是一个笑话吗? – GeeH 2012-08-13 14:07:40

回答

6

您可以使用preg_match

preg_match('/^!(\w{3})\((\d+),(\d+)\)$/', $string, $matches); 

然后$matches将包含:

matches: Array 
(
    [0] => !fun(10,20) 
    [1] => fun 
    [2] => 10 
    [3] => 20 
) 

我用正则表达式的专家,随时以评论它是否可以减少。

+0

完美,谢谢:) – GeeH 2012-08-13 14:13:32

+0

没问题,欢呼! – 2012-08-13 14:13:56

+0

我建议'/ ^!(\ w {3})\((\ d +),(\ d +)\)$ /'限制为三个字符作为函数名称。你也不需要[]。 – moopet 2012-08-13 14:15:31