【问题标题】:Identifying wordpress shortcodes using a regular expression使用正则表达式识别 wordpress 短代码
【发布时间】:2012-01-02 16:10:08
【问题描述】:

我有一个 wordpress 简码,其中包含一些其他简码。当执行第一个简码时,我想使用正则表达式过滤掉其他简码。

[main_code]
   [sub_code id='testid']test content[/sub_code]
   [sub_code id='testid' name='testname']test content[/sub_code]
[/main_code]

当我执行 main_code 时,我想将 sub_code 过滤到一个数组中并访问其属性,而不将 sub_code 作为短代码执行。

任何有知识为我提供解决方案的人都会受到高度评价。

【问题讨论】:

    标签: php regex wordpress shortcode


    【解决方案1】:

    如果你想匹配内部零件,那么我建议:

    preg_match_all('~\[sub_code([^\[\]]*)]([^\[\]]+)\[/sub_code]~', $content, $result);
    

    [^\[\]] 匹配任何不带方括号的内容。因此可以确保其中不存在其他短代码。

    【讨论】:

    • 我试过你的代码,它给出了一个包含 2 个空元素的数组。匹配时我也必须考虑属性
    • 为参数添加了另一个占位符。
    • 几乎完美。现在属性作为 [1] => Array ( [0] => id='testid' [1] => id='testid' name='teddsstname' [2] => id='testid' name= 'testname' ) 你有什么关于分别获取属性的建议
    • strtr 用于将空格更改为 & 和号。 parse_str 用于分隔它们,然后trim 用于删除引号。 -- 或者该任务的正则表达式。
    • 你问的codez是什么?好吧,/(\w+)='([^']*)'/ 可能会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2015-11-11
    • 2011-06-17
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多