2

テキストのブロックがあり、次のようなテキストのビットを見つける必要があります: {slider:1} {video-alt:10}

私はこのビットのコードを持っています

$regex = '/{[ ]*(slider)|(slider-alt)|(video)[ ]*:[0-9]+[ ]*}/';
        $matches = array();
        preg_match_all( $regex, $row->content, $matches );

しかし、返された配列はすべて台無しです...

配列出力:

Array ( [0] => {slider [1] => {slider [2] => video:2} )
Array ( [0] => slider [1] => slider [2] => )
Array ( [0] => [1] => [2] => )
Array ( [0] => [1] => [2] => video )

入力の場合:

{slider:6}
{slider-alt:2}
{video:2}

何か助けはありますか?

4

1 に答える 1

2

あなたの正規表現は散らかっています。

$regex = '/{ *(slider|slider-alt|video) *:\d+ *}/';
$matches = array();
preg_match_all( $regex, $row->content, $matches );
于 2012-04-04T07:20:15.237 に答える