首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将str_replace值拆分为使用类别的wpallimport

如何将str_replace值拆分为使用类别的wpallimport
EN

Stack Overflow用户
提问于 2019-09-11 12:11:30
回答 1查看 637关注 0票数 0

对于通过wpallimport导入文章,我希望它们属于正确的类别。在csv文件中有一个列,列有几个(子)类别,用空格分隔。现在我想用>函数来代替str_replace空间,只有文本"abcd & efgh“的项目组,空间和&空间也将被>符号所取代。这个是可能的吗?

groep[1]是:PRINTER INKT & PAPIER

[str_replace(" ", ">", {groep[1]})]

其结果是:

代码语言:javascript
复制
printer (group)
--inkt  (subgroup)
---&    (subgroup)
----papier (subgroup)

因此,我需要:

代码语言:javascript
复制
printer (group)
-inkt & papier (subgroup)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 13:14:41

您可以使用正则表达式函数,而不是普通的str_replace

函数preg_match_all($pattern, $string, $matches)将在字符串中查找所有出现的模式,并在输出$matches数组的第一个元素中返回它们。

代码语言:javascript
复制
  $s = "PRINTER INKT & PAPIER ONE & TWO & THREE";
  if (preg_match_all('#\S+(\s&\s\S+)*#', $s, $matches)) {
    // $matches[0] - is an array, which contains all parts
    print_r($matches[0]);
    // to assemble them back into a string, using another delimiter, use implode:
    $newstr = implode('>', $matches[0]);
    print($newstr); // PRINTER>INKT & PAPIER>ONE & TWO & THREE
  }

UPD.如果您坚持只使用str_replace,那么您可以使用它两次:第一次将所有空格替换为>,第二次将>&>替换回&

代码语言:javascript
复制
  $s = "PRINTER INKT & PAPIER ONE & TWO & THREE";

  $newstr = str_replace('>&>', ' & ', str_replace(' ', '>', $s));
  print ($newstr); // PRINTER>INKT & PAPIER>ONE & TWO & THREE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57888857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档