私はこの文字列を持っています
@[123:peterwateber] こんにちは 095032sdfsdf! @[589:zzzz]
123 と 589を取得したいのですが、PHP で正規表現などを使用するにはどうすればよいですか?
注: peterwaterber と zzzz は単なる例です。任意のランダムな文字列を考慮する必要があります
私はこの文字列を持っています
@[123:peterwateber] こんにちは 095032sdfsdf! @[589:zzzz]
123 と 589を取得したいのですが、PHP で正規表現などを使用するにはどうすればよいですか?
注: peterwaterber と zzzz は単なる例です。任意のランダムな文字列を考慮する必要があります
一致しないように、先読みを忘れないでください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" }
次の正規表現は、連続して 1 つ以上の数字を抽出します。
preg_match_all('#\d+#', $subject, $results);
print_r($results);
preg_match_all という関数があります
最初のパラメーターは正規表現を受け入れます。次の例は、「少なくとも 1 桁の数字に一致し、その後に任意の数の数字が続く」ことを示しています。これで数字が一致します。
2番目のパラメータは文字列そのもので、抽出したい件名です
3 つ目は、一致したすべての要素が格納される配列です。したがって、最初の要素は 123、2 番目の要素は 589 などになります。
preg_match_all("/[0-9]+/", $string, $matches);