抱歉我的英语不好。这是我的问题:
我的$ str包含以下内容:" 1122这是我的字符串[ABC:123456]"
我接受:
preg_match("/\d+/",$string,$result);
echo $result[0];
没关系,结果是对的。 1122
但我只想要这个数字:[ABC:123456] 不是这个:" 123这是我的字符串...."
我接受:
preg_match("/\[\d+\]/",$string,$result);
echo $result[0];
但结果却是...... "注意:未定义的偏移量:行中的0 ..."
有什么不对?
修改 好吧,也许有一种更简单的方法。我需要的数字总是以" G015"开头。之后是其他数字1,14,80,123,依此类推......
这始终在括号中。所以"一个文本,无论[G015123]"。
也许某人有想法,我如何获得这个号码才能继续工作?
答案 0 :(得分:1)
你忘记了捕捉括号
preg_match("/(\d+)/",$string,$result);
echo $result[0];
您也可以使用 preg_match_all()来捕获所有数字
$string = "1122 Here is my string [ABC: 123456]";
preg_match_all("/(\d+)/",$string,$result);
var_dump($result);
答案 1 :(得分:0)
你告诉它匹配集合中的一个或多个。该代码的/[\d+]/
应为/([\d]+)/
。
如果你想匹配你的字符串中的所有#,而不仅仅是你需要使用preg_match_all()
的第一个#