0

中括弧のすべてのペアの間の数値を変数として保存する必要があります。

{2343} -> $number
echo $number;
Output = 2343

「->」部分のやり方がわかりません。

同様の関数を見つけましたが、中括弧を削除するだけで、他には何もしません。

preg_replace('#{([0-9]+)}#','$1', $string);

使える機能はありますか?

4

2 に答える 2

1

おそらくキャプチャでpreg_matchを使用したいと思うでしょう:

$subject = "{2343}";
$pattern = '/\{(\d+)\}/';
preg_match($pattern, $subject, $matches);
print_r($matches);

出力:

Array
(
    [0] => {2343}
    [1] => 2343
)

$matches配列が見つかった場合、インデックス 1 に結果が含まれます。

if(!empty($matches) && isset($matches[1)){
    $number = $matches[1];
}

入力文字列に多数の数字を含めることができる場合は、preg_match_all を使用します。

$subject = "{123} {456}";
$pattern = '/\{(\d+)\}/';
preg_match_all($pattern, $subject, $matches);
print_r($matches);

出力:

Array
(
    [0] => Array
        (
            [0] => {123}
            [1] => {456}
        )

    [1] => Array
        (
            [0] => 123
            [1] => 456
        )
)
于 2012-07-09T08:52:59.243 に答える
0
$string = '{1234}';
preg_replace('#{([0-9]+)}#e','$number = $1;', $string);
echo $number; 
于 2012-07-09T08:58:02.107 に答える