我正在尝试在PHP中编写一个非常简单的标记语言,其中包含[x = 123]之类的标记,我需要能够匹配该标记并仅提取x的值。
我假设答案涉及正则表达式,但也许我错了。
所以,如果我们有一个字符串:
$str = "F9F[x=]]^$^$[x=123]#3j3E]]#J";
要匹配的正则表达式:
/^\[x=.+\]$/
我们如何只将匹配字符串的“。+”部分变为变量?
答案 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