-1

我有以下字符串:

!fun(10,20)

我正在尝试将其拆分为以下组成部分:

!, fun, 10,20

the!始终是第一个字符。Thefun始终是 之后的下一个 3 个字符, the 将始终跟在左括号之后!10the(20始终跟在右括号之前的第一个逗号,之后。

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

4

3 回答 3

6

您可以使用preg_match

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

然后$matches将包含:

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

我不是正则表达式的专家,如果可以减少,请随时发表评论。

于 2012-08-13T14:11:51.683 回答
0
$string=!fun(10,20);
$arr=array('!','(',')',',');
$string=str_replace($arr,'_',$string);
$exp_string=explode('_',$string);
print_r($exp_string);

您可以在http://www.phpsyntax.blogspot.in找到更多信息

于 2012-08-13T14:10:46.203 回答
0
$pattern = '#\!([a-zA-Z]+)\(([0-9]+),([0-9]+)\)#s';
于 2012-08-13T14:14:12.010 回答