首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除句子中的单词,而不是双引号之间的单词

删除句子中的单词,而不是双引号之间的单词
EN

Stack Overflow用户
提问于 2018-09-24 16:24:50
回答 1查看 43关注 0票数 1

我想用替换句来编排句子,而不是在双引号之间。

示例,这句话:

代码语言:javascript
复制
$remplacement = ['the', 'in']; // words who must be deleted
$sentence = "the sea" OR the sea AND "the sea" in the world.

应该是

“海”或“海”和“海”世界。

我认为我们可以使用preg_replace或preg_match。我找到了在双引号上引用文本的regex:

代码语言:javascript
复制
'/[^"]+(?=(?:[^"]*"[^"]*"[^"]*)*$)/'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 16:44:01

您可以忽略引用的单词与PCRE动词。然后,你可以用一个“或”的内爆术语,只需替换它们。您应该使用单词边界,这样部分匹配就不会被替换。

代码语言:javascript
复制
$remplacement = ['the', 'in'];
$sentence = '"the sea" OR the sea AND "the sea" in the world.';
echo preg_replace('/([\'"]).*?\1(*SKIP)(*FAIL)|\b(' . implode ('|', $remplacement) . ')\b/', '', $sentence);

https://3v4l.org/ZELoV

但是你的例子是不正确的,对吗?最后,the world也应该变成world

如果您关心的是双间距,您可以使用:

代码语言:javascript
复制
preg_replace('/\h\h+/', ' ',

才能摆脱它。

https://3v4l.org/pqCH3

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52483588

复制
相关文章

相似问题

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