我正在尝试使用preg_match_all
但它不能正常我尝试这个:
$string='this is a test hello \1234';
preg_match_all('[(\\)(0-9)], $string, $output);
它只显示“hello”如果我退出$ string的“\”我可以看到“hello 1234”但是“\”它不起作用。
答案 0 :(得分:2)
我想我可能有一个解决方案
$string='this is a test hello \1234';
preg_match("/hello \\\\[0-9]*/", $string, $output);
var_dump($output);
这里的东西是4个反斜杠。我不是100%肯定这个,但我认为这是因为在php中你需要转义反斜杠,所以\\
产生\
在正则表达式中你也需要两个反斜杠(请参阅praveen kumars的答案以获得良好的正则表达式解释)。所以当你使用4个反斜杠时,php会将其更改为2,这就是你的正则表达式所需要的
编辑: 原来我的想法中有一些道理。查看this文章了解更多说明
答案 1 :(得分:1)