从字符串替换通配符

时间:2015-01-20 12:08:19

标签: python replace wildcard

我有一个创建这样的变量的脚本:

ex = "/Volumes/Obelix/5215.tif, /Volumes/Gemeinsam/25.tif, /Volumes/Obelix/5100.tif"

是否可以使用/Volumes/Gemeinsam/*删除所有内容,因此我最终得到:

ex = "/Volumes/Obelix/5215.tif, /Volumes/Obelix/5100.tif"

我不熟悉Python中的通配符,所以我遇到了一些问题。我已经阅读了很多关于re.sub()的内容,但无法在此处使用。

2 个答案:

答案 0 :(得分:1)

Python并不真正处理通配符。您应该阅读有关Regex的更多信息,这不是特定于Python的。

无论如何,这应该照顾它:

ex = "/Volumes/Obelix/5215.tif, /Volumes/Gemeinsam/25.tif, /Volumes/Obelix/5100.tif"
newex = re.sub(r'/Volumes/Gemeinsam/.+?,?(\s|$)', '', ex)

答案 1 :(得分:0)

您需要进行一些预解析,具体取决于您对数据的确定程度,但您可以使用in in运算符来检查字符串是否包含其他字符串。然后,您可以根据最可读的内容使用循环或列表推导。

ex = [x.strip() for x in "/Volumes/Obelix/5215.tif, /Volumes/Gemeinsam/25.tif, /Volumes/Obelix/5100.tif".split(',')]
check = "/Volumes/Gemeinsam"
new_ex = [x for x in ex if check not in x]