0

我在名为 的字段中有数据字符串content,一条记录可能类似于:

loads of text ... [attr1] some text [attr2] more text [attr3] more text etc...

我要做的是获取方括号内的所有文本;这样我就可以将其放入 PHP 数组中。这甚至可以用 mySql 实现吗?

我看过以下帖子:希望通过 MYSQL 在字符串中的括号之间提取数据,但他们只想从括号之间提取一个值,我的数量未知。读完那篇文章后,我想做类似以下的事情;

SELECT substr(content,instr(content,"["), instr(content,"]")) as attrList from myTable

这会抓住我以下几点:

[attr1] some text [attr2] some more text [attr3]

我可以使用 PHP 去除其余的文本,然后将字符串分解成一个数组,但是有没有更好的方法来做到这一点,只使用 mySql 我可以检索如下内容:

[attr1][attr2][attr3]

我在想也许是正则表达式,但我看到它只返回一个 false 的 true,这对我没有多大帮助。

4

1 回答 1

0

经过更多研究,我不确定在 mySql 中是否可行,并且我可能需要字符串或数组形式的结果,具体取决于我在应用程序中使用它们的位置。

所以我创建了一个新方法来在从数据库中获取数据后返回列表(在这篇文章的帮助下:PHP:在方括号之间捕获文本):

public function attrList($array=false)
{
    preg_match_all("/\[.*?\]/",$this->content,$matches);

    $params = str_replace(array('[',']'),'',$matches[0]);

    return ($array===false) ? implode(', ',$params) : $params;
}
于 2012-10-25T14:33:25.883 回答