从字符串中替换通配符

Replace wildcard from string

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

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() 的内容,但无法在此处使用。

根据您对数据的确定程度,您必须进行一些预解析,但您可以使用 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]

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

无论如何,这应该可以解决:

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