-1

次の文字列があります。

!fun(10,20)

私はそれを次のコンポーネント部分に分割しようとしています:

!fun1020

!常に最初の文字です。はfun常に の次の 3 文字、は常に開き括弧の後に続き、 は常に閉じ!括弧の前の最初のカンマの後に続きます。10(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 に答える