[英]Remove substring from string if substring in list in data frame column
[英]Remove substring from string if substring is contained in a list
问题:我有一个从“ listOfTags”列表中包含“标签”的字符串。 如果字符串包含列表中的这些“标签”之一,我希望能够从字符串中删除这些“标签”。
我尝试的方法:我首先尝试遍历“ listOfTags”,并将每个“ tag”附加到一个名为x的空字符串变量中。 然后,我尝试使用string.replace方法从另一个名为y的字符串变量中删除“标签”。然后我意识到,如果“标签”以它们附加的顺序出现,则该方法只会返回我想要的内容变量x。
我创建的算法如下:
如果字符串包含特定列表中指定的任何字符串作为子字符串,请执行以下操作:从字符串中删除该子字符串
问题的一个示例:
listOFTags = ["#tag", "#bold", "#merge"]
string = "#tag #bold bob #merge"
#execute algorithm here
如何获得包含文本“ bob”的字符串?
我要退货:
new_string = "bob"
您可以使用replace
:
listOFTags = ["#tag", "#bold", "#merge"]
string = "#tag #bold bob #merge"
for tags in listOFTags:
string = string.replace(tags, "")
print(string)
如果有数十个标记,并且要处理的每个字符串包含数十个单词,则使用正则表达式执行此任务会更有效。
import re
p = re.compile('|'.join(listOFTags)) # p can be reused across different input strings
new_string = p.sub("", string).strip()
如果标签不包含任何在正则表达式中具有特殊含义的字符,则此解决方案有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.