我对使用preg_match很新。在发布此问题之前,我们已经搜索了很多答案。发现了很多帖子来获取基于youtube ID等的数据。但没有根据我的需要。如果是愚蠢的问题,请原谅我。
我需要从preg_match的字符串中获取ID。字符串的格式为
[#1234] Subject
如何从字符串中仅提取“1234”?
答案 0 :(得分:4)
一个解决方案是:
\[#(\d+)\]
这匹配左方括号和井号[#
,然后捕获一个或多个数字,然后是右方括号]
。
您可以使用它:
preg_match( '/\[#(\d+)\]/', '[#1234] Subject', $matches);
echo $matches[1]; // 1234
您可以在this demo中看到它。
答案 1 :(得分:2)
你可以试试这个:
preg_match('~(?<=\[#)\d+(?=])~', $txt, $match);
(?<=..)
是一个后视(只是检查)
(?=..)
是未来的
答案 2 :(得分:1)
你的正则表达式:
preg_match('/^\[\#([0-9]+)\].+/i', $string, $array);
答案 3 :(得分:1)
这是你可以做到的一种方式:
<?php
$subject = "[#1234] Subject";
$pattern = '/^\[\#([0-9]+)/';
preg_match($pattern, $subject, $matches);
echo $matches[1]; // 1234
?>
答案 4 :(得分:0)
要获得整数,您可以使用子模式http://php.net/manual/en/regexp.reference.subpatterns.php
$string="[#1234] Subject";
$pattern="/\[#(?P<my_id>\d+)](.*?)/s";
preg_match($pattern,$string,$match);
echo $match['my_id'];