0

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

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

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

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

以及要匹配的正则表达式:

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

我们如何只将匹配字符串的“.+”部分放入变量中?

4

2 回答 2

0

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

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

于 2012-10-30T04:32:38.617 回答
0

以下代码应该适合您:

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

输出:

123
于 2012-10-30T04:41:19.070 回答