我正在尝试在 PHP 中编写一种非常简单的标记语言,其中包含 [x=123] 之类的标签,并且我需要能够匹配该标签并仅提取 x 的值。
我假设答案涉及正则表达式,但也许我错了。
所以如果我们有一个字符串:
$str = "F9F[x=]]^$^$[x=123]#3j3E]]#J";
以及要匹配的正则表达式:
/^\[x=.+\]$/
我们如何只将匹配字符串的“.+”部分放入变量中?
您可以使用preg_match在字符串中搜索正则表达式。
在此处查看文档:http ://www.php.net/manual/en/function.preg-match.php以获取有关如何使用它的更多信息(以及一些示例)。您可能还想看看preg_grep。
以下代码应该适合您:
$str = "F9F[x=]]^$^$[x=123]#3j3E]]#J";
if (preg_match('~\[x=(?<valX>\d+)\]~', $str, $match))
echo $match['valX'] . "\n";
输出:
123