7

私はこの文字列を持っています

@[123:peterwateber] こんにちは 095032sdfsdf! @[589:zzzz]

123 と 589を取得したいのですが、PHP で正規表現などを使用するにはどうすればよいですか?

注: peterwaterber と zzzz は単なる例です。任意のランダムな文字列を考慮する必要があります

4

3 に答える 3

7

一致しないように、先読みを忘れないでください095032

$foo = '@[123:peterwateber] hello there 095032sdfsdf! @[589:zzzz]';
preg_match_all("/[0-9]+(?=:)/", $foo, $matches);
var_dump($matches[0]); // array(2) { [0]=> string(3) "123" [1]=> string(3) "589" }
于 2012-05-06T05:35:07.343 に答える
2

次の正規表現は、連続して 1 つ以上の数字を抽出します。

preg_match_all('#\d+#', $subject, $results);
print_r($results);
于 2012-05-06T05:27:39.503 に答える
1

preg_match_all という関数があります

最初のパラメーターは正規表現を受け入れます。次の例は、「少なくとも 1 桁の数字に一致し、その後に任意の数の数字が続く」ことを示しています。これで数字が一致します。

2番目のパラメータは文字列そのもので、抽出したい件名です

3 つ目は、一致したすべての要素が格納される配列です。したがって、最初の要素は 123、2 番目の要素は 589 などになります。

    preg_match_all("/[0-9]+/", $string, $matches);
于 2012-05-06T05:27:53.533 に答える