如何匹配包含任意字符串的正则表达式,并使用PHP只将该任意字符串转换为变量?

时间:2012-10-30 04:03:16

标签: php regex string

我正在尝试在PHP中编写一个非常简单的标记语言,其中包含[x = 123]之类的标记,我需要能够匹配该标记并仅提取x的值。

我假设答案涉及正则表达式,但也许我错了。

所以,如果我们有一个字符串:

$str = "F9F[x=]]^$^$[x=123]#3j3E]]#J";

要匹配的正则表达式:

/^\[x=.+\]$/

我们如何只将匹配字符串的“。+”部分变为变量?

2 个答案:

答案 0 :(得分:0)

您可以使用 preg_match 在字符串中搜索正则表达式。

请查看此处的文档:http://www.php.net/manual/en/function.preg-match.php,了解有关如何使用它的更多信息(以及一些示例)。您可能还想查看 preg_grep

答案 1 :(得分:0)

以下代码应该适合您:

$str = "F9F[x=]]^$^$[x=123]#3j3E]]#J";
if (preg_match('~\[x=(?<valX>\d+)\]~', $str, $match))
   echo $match['valX'] . "\n";

<强>输出:

123