Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php regex-can';我找不到错误_Php_Regex - Fatal编程技术网

php regex-can';我找不到错误

php regex-can';我找不到错误,php,regex,Php,Regex,只有一个简单而具体的问题: 我得到了字符串{var1}12345{var2},我想得到使用的变量名 if (preg_match("/{([a-zA-Z0-9]*)}/g", $url, $matches)) { print_r($matches); } 如果我删除全局标志,它会工作,但我只得到第一个变量,正如预期的那样。为什么它不使用全球标志?当我从以下位置使用测试时,它会工作: preg_match()返回模式匹配的次数。这将是0次(无匹配)或1次,因为preg\u match()

只有一个简单而具体的问题:
我得到了字符串
{var1}12345{var2}
,我想得到使用的变量名

if (preg_match("/{([a-zA-Z0-9]*)}/g", $url, $matches)) {
    print_r($matches);
}
如果我删除全局标志,它会工作,但我只得到第一个变量,正如预期的那样。为什么它不使用全球标志?当我从以下位置使用测试时,它会工作:

preg_match()返回模式匹配的次数。这将是0次(无匹配)或1次,因为preg\u match()将在第一次匹配后停止搜索。相反,preg_match_all()将一直持续到主题末尾。如果发生错误,preg_match()将返回FALSE

发件人:

preg_match()返回模式匹配的次数。这将是0次(无匹配)或1次,因为preg\u match()将在第一次匹配后停止搜索。相反,preg_match_all()将一直持续到主题末尾。如果发生错误,preg_match()将返回FALSE

这应该可以做到(如果您需要{name}格式的变量):

这应该可以做到(如果您需要{name}格式的变量):

用于获取多个匹配项:

if (preg_match_all("/{([a-zA-Z0-9]*)}/", $url, $matches)) {
    print_r($matches[1]);
}
用于获取多个匹配项:

if (preg_match_all("/{([a-zA-Z0-9]*)}/", $url, $matches)) {
    print_r($matches[1]);
}

啊哈!不知道他们为什么会这样。无法
preg_match()
返回全局搜索的点击数,如果没有点击,它仍然是“falsy”…嗯。。无论如何。谢谢(:Aha!想知道他们为什么这样做。无法
preg_match()
返回全局搜索的点击数,如果没有点击,它仍然是“falsy”…嗯..无论如何。谢谢(: