1

文字列から 2 つの角かっこ ([ ]) の間の数字のみを取得しようとしています。

これが私のコードです:

$str = "[#123456] Some text";
preg_match('/^[#(?P<number>\w+)]/', $string, $matches);

// Returns 123456
echo $matches['number'];

これで私を助けることができる人はいますか?

編集:質問を片付けました。括弧内の数字のみを取得する必要があります。これまでの応答では、文字列全体に数字が表示されます。

4

4 に答える 4

2

数字とその周りの中括弧が必要な場合は、次の正規表現を使用できます。

preg_match('/\[#\d+\]/U', $str, $matches);
echo $matches[0];

それ以外の場合は、

preg_match('/\[#(\d+)\]/U', $str, $matches);
echo $matches[1];
于 2012-07-30T15:27:45.340 に答える
0

または...(コードがコードとして表示されるように編集されています)

$str = preg_replace('/[^0-9]/', '', $str);
于 2012-07-30T15:27:05.193 に答える
0

これを使って:

preg_match('/[0-9]*/', $string, $matches);
var_dump($matches);

正規表現の詳細については、ここをクリックしてください

于 2012-07-30T15:24:38.253 に答える
0

これは、このコンテキスト内からのみ数値を返します [#....]

$str = "[#123456] Some text";
preg_match('/\[#(\d+)\]/', $str, $matches);
var_dump($matches);
echo $matches[1]; // 123456
于 2012-07-30T15:34:07.067 に答える