preg_match_all - 不起作用

时间:2017-02-24 14:18:56

标签: php arrays regex

我希望通过这个正则表达式匹配 \ $ [a-zA-Z _] [0-9a-zA-Z _] *

例如:

x & y

预期回报(粗体文本匹配):

$ a 某些文字 $ b 另一个 $ c $ d

当我运行此代码时

$string = "\$a some text \$b another \$c \$d";

它让我回答:

$input_lines = "\$a \$b \$c \$d";
preg_match_all("/\$[a-zA-Z_][0-9a-zA-Z_]*/", $input_lines, $output_array);
var_dump($output_array);

预期结果应为:

array(1) {
  [0] =>
  array(0) {
  }
}

我使用PHP5.6

我不知道为什么。有什么建议吗?

由于

1 个答案:

答案 0 :(得分:3)

$string = "\$a some text \$b another \$c \$d";
preg_match_all("/\\$\w+/", $string, $matches);
print_r($matches);

结果:

Array
(
    [0] => Array
        (
            [0] => $a
            [1] => $b
            [2] => $c
            [3] => $d
        )
)

在正则表达式中,您必须转义$符号以及\本身。 是正则表达式的关键字符。