【发布时间】:2011-12-18 02:37:50
【问题描述】:
我需要解析一个搜索字符串来查找php中的关键字和短语,例如
字符串 1:value of "measured response" detect goal "method valuation" study
将产生:value,of,measured reponse,detect,goal,method valuation,study
如果字符串有,我也需要它来工作:
- 没有用引号括起来的短语,
- 任意数量的短语都用引号括起来,引号外有任意数量的关键字,
- 仅限引号中的短语,
- 仅以空格分隔的关键字。
我倾向于使用 preg_match 和模式 '/(\".*\")/' 将短语放入数组中,然后从字符串中删除短语,最后将关键字放入数组中。我就是不能把所有东西都放在一起!
我也在考虑用逗号替换引号外的空格。然后将它们分解成一个数组。如果这是一个更好的选择,我该如何使用preg_replace?
有没有更好的方法来解决这个问题?帮助!非常感谢大家
【问题讨论】:
-
是的,比正则表达式好得多 - 只需使用内置函数 str_getcsv 并将分隔符设置为空格,将附件设置为语音标记:
$array = str_getcsv($string, ' ', '"');