0

ChromeにRegExpTester拡張機能があります。検索テキストに対する実行パターン[-、]

「james、bayo-いい子だ」は2試合を返す

ただし、以下のようにphpでpreg_matchを実行するとfalseが返されます

<?php
 preg_match("[,-]", "james,bayo -is a good boy");
?>

正規表現テスターのように2が返されることを期待して、私は何かが欠けていると確信しています

4

1 に答える 1

4

次のような正規表現区切り文字が必要です。

preg_match("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);

これは、コンマまたはダッシュの2文字のいずれかに一致します。また、一致を取得するにはpreg_match()、一致が保存される場所として3番目のパラメーターをに指定する必要があります。

preg_match()を使用しているため、最初の一致のみが取得されることに注意してください。したがって、そのままでは、次のように出力されます。

array(1) {
  [0]=>
  string(1) ","
}

すべての一致が必要な場合は、次preg_match_all()のように使用する必要があります。

preg_match_all("/[,-]/", "james,bayo -is a good boy", $matches);
var_dump( $matches);

これは以下を出力します:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(1) ","
    [1]=>
    string(1) "-"
  }
}
于 2012-07-03T12:38:58.803 に答える