如果一个字符串在另一个字符串中,该如何匹配

时间:2019-06-23 23:06:59

标签: python python-3.x

基本上,我需要确定字符串(实际上是路径)是否在相似的字符串中但更长。

我在列表中有此字符串:

/aa/bb/cc
/aa/bb/cc/11
/aa/bb/cc/22
/aa/bb/dd
/aa/bb/dd/33
/aa/bb/dd/44

我希望只在列表中放入一个字符串,例如:

/aa/bb/cc/11
/aa/bb/cc/22

/aa/bb/dd/33
/aa/bb/dd/44

我需要一个没有/ aa / bb / cc和/ aa / bb / dd的新列表,因为存在/ aa / bb / cc / 11和/ aa / bb / cc / 22,与/ aa / bb / dd相同,存在/ aa / bb / dd / 33和/ aa / bb / dd / 44,因此我不希望使用基本格式/ aa / bb / cc和/ aa / bb / dd。

我希望我很清楚:-D

如何在Python 3中进行操作?

致谢

1 个答案:

答案 0 :(得分:0)

使用正则表达式。

import re

list_1 = ["/aa/bb/cc",
    "/aa/bb/cc/11",
    "/aa/bb/cc/22",
    "/aa/bb/dd",
    "/aa/bb/dd/33",
    "/aa/bb/dd/44"]

regex = re.compile(r'/aa/bb/cc/+.')
obj = filter(regex.search, list_1)
regex2 = re.compile(r'/aa/bb/dd/+.')
obj2 = filter(regex2.search, list_1)
print(list(obj))
print(list(obj2))

输出:

['/ aa / bb / cc / 11','/ aa / bb / cc / 22']

['/ aa / bb / dd / 33','/ aa / bb / dd / 44']

相关问题