gpt4 book ai didi

php - 使用 preg_match 查找所有 PHP 变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:23 25 4
gpt4 key购买 nike

如何使用 preg_match 找到所有 PHP 变量。我制作了以下正则表达式:

$string = 'Hallo $var. blabla $var, $iam a var $varvarvar gfg djf jdfgjh fd $variable';
$instring = array();
preg_match_all('/\$(.*?)/', $string, $instring);
print_r($instring);

我只是不明白正则表达式是如何工作的。

最佳答案

\$(.*?)

不是匹配 PHP 变量名的正确正则表达式。这样的 a regular expression for a Variable Name is actually part of the PHP manual 并给出(没有前导美元符号):

[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

所以在你的情况下我会尝试:

\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)

然后。 See the following example:

<?php
/**
* Find all PHP Variables with preg_match
*
* @link http://stackoverflow.com/a/19563063/367456
*/

$pattern = '/\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/';

$subject = <<<'BUFFER'
Hallo $var. blabla $var, $iam a var $varvarvar gfg djf jdfgjh fd $variable
BUFFER;

$result = preg_match_all($pattern, $subject, $matches);

var_dump($result);
print_r($matches);

输出:

int(5)
Array
(
[0] => Array
(
[0] => $var
[1] => $var
[2] => $iam
[3] => $varvarvar
[4] => $variable
)

[1] => Array
(
[0] => var
[1] => var
[2] => iam
[3] => varvarvar
[4] => variable
)

)

如果您想了解 PHP 中的正则表达式是如何工作的,您需要阅读 PHP 手册以及所使用的正则表达式方言 (PCRE) 的手册。还有一本名为“掌握正则表达式”的好书,我可以推荐阅读。

另见:

关于php - 使用 preg_match 查找所有 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19562936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com