【发布时间】:2009-06-24 11:23:06
【问题描述】:
我有以下代码
$str = "keyword keyword 'keyword 1 and keyword 2' another 'one more'".'"another keyword" yes,one,two';
preg_match_all('/"[^"]+"|[^"\' ,]+|\'[^\']+\'/', $str, $matches);
echo "<pre>"; print_r($matches); echo "</pre>";
我希望它从字符串中提取关键字,并将它们放在单引号或双引号中,上面的代码可以正常工作,但它返回的值带有引号。我知道我可以通过 str_replace 或类似方法删除这些,但我真的在寻找一种通过 preg_match_all 函数解决这个问题的方法。
输出:
Array
(
[0] => Array
(
[0] => keyword
[1] => keyword
[2] => 'keyword 1 and keyword 2'
[3] => another
[4] => 'one more'
[5] => "another keyword"
[6] => yes
[7] => one
[8] => two
)
)
另外,我认为我的正则表达式有点笨拙,所以任何更好的建议都会很好:)
任何建议/帮助将不胜感激。
【问题讨论】:
-
a,"b",c,d,"e"或"b'" '"c'之类的呢?
标签: php regex preg-match-all