PHP正则表达式帮助(preg_replace)

时间:2012-12-03 19:10:47

标签: php regex preg-replace

假设我有字符串:"Test [[1294]] example"

我怎么能用preg_replace()从双括号中提取数字?

有人可以告诉我(贪婪)获得这个数字的表达方式吗? -it将始终是双括号内的整数。

非常感谢。

2 个答案:

答案 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_matchpreg_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