假设我有字符串:"Test [[1294]] example"
我怎么能用preg_replace()
从双括号中提取数字?
有人可以告诉我(贪婪)获得这个数字的表达方式吗? -it将始终是双括号内的整数。
非常感谢。
答案 0 :(得分:2)
您可以使用preg_match()
,而不是preg_replace()
:
$subject = 'Test [[1294]] example';
preg_match('/\[\[(\d+)\]\]/', $subject, $match);
echo $match[1];
答案 1 :(得分:2)
You might want to check out a tutorial.
如果你想"提取"数字,不需要preg_replace
。请改为使用preg_match
或preg_match_all
(如果有多次出现):
preg_match('/\[\[(\d+)\]\]/', $input, $matches);
$integer = $matches[1];
或
preg_match_all('/\[\[(\d+)\]\]/', $input, $matches);
$integerArray = $matches[1];
如果不是"提取"你实际上意味着"我怎么能preg_replace
这个术语并使用提取的整数",你可以使用相同的正则表达式并使用$1
来引用捕获的整数:
$output = preg_replace('/\[\[(\d+)\]\]/', 'Found this integer -> $1 <-', $input);
哪会导致:
Test Found this integer -> 1294 <- example