PHP 正则表达式提取双方括号内的参数(Modx 标签)
PHP Regex to extract parameters within double square brackets (Modx Tags)
我正在尝试编写一个正则表达式以从 modx 数据库中的内容数组中提取特定参数的值。标签的格式是:
[[!video? &path=`_path_to_video` &width=`123` &height=`123` &someotherparm=`bar`]]
我正在尝试使用此正则表达式获取 &path 参数的内容:
preg_match_all('/\[\[path=`(.*?)`\]\]/', $content, $tags, PREG_PATTERN_ORDER) ;
但运气不好 - 当我转储 $tags 变量时它只是 returns 空数组。
我的正则表达式有问题吗?
试试这个正则表达式:
'/\[\[.*?&path=`([^`]+?)`.*?\]\]/'
您的模式与标签格式不匹配:
preg_match_all('/&path=`([^`]+)`/', $content, $tags, PREG_PATTERN_ORDER);
- 匹配
&path=
然后反引号,然后
- 匹配任何不是反引号的东西,直到另一个反引号并捕获它
如果你真的需要匹配 [[
的存在并关闭 ]]
那么:
preg_match_all('/\[\[.*&path=`([^`]+)`.*\]\]/', $content, $tags, PREG_PATTERN_ORDER);
我正在尝试编写一个正则表达式以从 modx 数据库中的内容数组中提取特定参数的值。标签的格式是:
[[!video? &path=`_path_to_video` &width=`123` &height=`123` &someotherparm=`bar`]]
我正在尝试使用此正则表达式获取 &path 参数的内容:
preg_match_all('/\[\[path=`(.*?)`\]\]/', $content, $tags, PREG_PATTERN_ORDER) ;
但运气不好 - 当我转储 $tags 变量时它只是 returns 空数组。
我的正则表达式有问题吗?
试试这个正则表达式:
'/\[\[.*?&path=`([^`]+?)`.*?\]\]/'
您的模式与标签格式不匹配:
preg_match_all('/&path=`([^`]+)`/', $content, $tags, PREG_PATTERN_ORDER);
- 匹配
&path=
然后反引号,然后 - 匹配任何不是反引号的东西,直到另一个反引号并捕获它
如果你真的需要匹配 [[
的存在并关闭 ]]
那么:
preg_match_all('/\[\[.*&path=`([^`]+)`.*\]\]/', $content, $tags, PREG_PATTERN_ORDER);