Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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 匹配示例短代码的正则表达式_Php_Regex - Fatal编程技术网

Php 匹配示例短代码的正则表达式

Php 匹配示例短代码的正则表达式,php,regex,Php,Regex,我需要一个PHP正则表达式的帮助,它将匹配下面的示例短代码: [smiley set_name="Happy" filename="smiling.gif"] 我想从上面的短代码中提取“Happy”和“smilling.gif”。我将非常感谢你的帮助。提前谢谢。我不确定您可以假定知道多少字符串,但可能类似于: /\[smiley set_name="([\w\s]+)" filename="(\w+.gif|jpg|png|jpeg)"\]/ 因此,您的代码可能如下所示: $string =

我需要一个PHP正则表达式的帮助,它将匹配下面的示例短代码:

[smiley set_name="Happy" filename="smiling.gif"]

我想从上面的短代码中提取“Happy”和“smilling.gif”。我将非常感谢你的帮助。提前谢谢。

我不确定您可以假定知道多少字符串,但可能类似于:

/\[smiley set_name="([\w\s]+)" filename="(\w+.gif|jpg|png|jpeg)"\]/
因此,您的代码可能如下所示:

$string = '[smiley set_name="Happy" filename="smiling.gif"]';

preg_match('/\[smiley set_name="([\w\s]+)" filename="(\w+.gif|jpg|png|jpeg)"\]/', $string, $matches);

var_dump($matches);

如果它在wordpress中,您可以从它的短代码处理程序中获取这些属性:如果您不确定字符串,那么:
(?因为他在问题标题“表达式匹配示例短代码”中提出了这个问题)。您提供的正则表达式与短码不匹配,它只提取数据。但正则表达式很好。谢谢@DrRoach,我尝试了您的名字,它成功了。最后一件事,set_name与空格不匹配。如果我有“快乐的脸”而不是“快乐”,它没有被提取。@xcoder更改了我的答案,使它现在也可以匹配空格。希望这就是你想要的