正则表达式绝对是我的弱点,这个让我完全难住了。我正在构建一个相当基本的搜索功能,我需要能够根据以下模式更改用户输入:
Subject:
%22first set%22 %22second set%22-drupal -wordpress
期望的输出:
+"first set" +"second set" -drupal -wordpress
我希望我能提供更多帮助,因为我通常喜欢至少发布迄今为止的解决方案,但在这个问题上我不知所措。
任何帮助表示赞赏。谢谢。
看来您的数据是 URL 编码的。如果您申请urldecode http://php.net/manual/en/function.urldecode.php, 你会得到
"first set" "second set" -drupal -wordpress
(我假设你之前有一个空格-drupal
).
现在你必须添加+
。再说一遍,我假设您必须在所有没有的单词之前添加这些单词-
并且不在引号内:
$str = '"first set" "second set" -drupal -wordpress foo';
echo preg_replace('#( |^)(?!(?:\w+"|-| ))#','\1+', $str));
// prints +"first set" +"second set" -drupal -wordpress +foo
Update:如果您无法使用urldecode
,你可以使用str_replace
取代%22
with "
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)