PHP-需要帮助,使用正则表达式模式提取多个字符串

时间:2018-08-23 18:19:44

标签: php regex

我无法使用PHP从字符串中提取某些模式。这是示例字符串:

"New [[supplier]] price request for [[legal-entity]]"

我需要做的是从该字符串中提取所有“合并标签”(放在方括号中)并输出到数组中。我需要的数组是:

array(
    0 => "[[supplier]]',
    1 => "[[legal-entity]]"
);

1 个答案:

答案 0 :(得分:1)

您可以使用以下表达式:

\[\[[^]]+\]\]
  • \[\[两个[括号。
  • [^]]+否定的字符集,不是]的任何字符。
  • \]\]两个]括号。

正则表达式演示here


在PHP中:

<?php

$input = 'New [[supplier]] price request for [[legal-entity]]';

$matches = array();
preg_match_all('/\[\[[^]]+\]\]/s', $input, $matches);
print_r($matches);

打印:

[0] => Array
        (
            [0] => [[supplier]]
            [1] => [[legal-entity]]
        )

PHP演示here