MySQL Regex在逗号分隔的数字字符串中不匹配

时间:2017-10-07 11:35:41

标签: php mysql regex wordpress

我正在使用Wordpress并尝试查找包含短代码及其属性的页面。

以下是页面中的一些示例内容

[my-shortcode title="some text" style="grid" 
      post_ids="45724,1786,1889,1927,2613,32856,2976,2898,2372,2059" 
      image_id="61690"]

我目前有一个带有正则表达式的MySQL查询。 $ my_id =我设定的具体数字。

$query = 'SELECT ID,post_content from ' . $wpdb->posts .
    ' where post_type="page"
        and post_content regexp "\[my-shortcode[^\]].*post_ids=\"[^\"].*' .
               $my_id . '[^\"].*\"[^\]].*image_id=\"[0-9].*\"[^\]]?\]"';

除了post_ids属性中的第一个ID之外,这似乎工作正常。它永远不会匹配第一个,只有第一个之后的ID。

毫无疑问,我正在做一些非常明显的事情,但我很遗憾不是一个正则表达式的人。

我也很欣赏我可以在Wordpress中查询数据库的其他方法,但由于其他许多原因我现在不会进入,这是我需要这样做的方式。

非常感谢任何帮助!

0 个答案:

没有答案