我正在遍历很多文件夹并提取文件夹的名称,因为我稍后会使用它。但是,大多数文件夹中都有一些奇怪的单词,我以后不需要这些单词。例如,文件夹名称可以是930_930_MRTY_2018-30-04_091_FIX_F.42_n1__00001
。这就是大多数文件夹名称的方式。因此,如果我使用split("_")
,我可以将这些字符串分开一点。但是,我不需要进一步使用的一件事是n##
字符串。
因此,我可以使用以下内容:
filter_words = [".", "", "n1"]
folder_name_info = [word for word in y.split("_") if word not in filter_words]
获取没有我不喜欢的东西的列表。对于此示例,这会从列表中正确删除n1
,但情况是,n
之后的数字非常随机。那么我该如何绕过它来定位所有以n
后跟任何数字的字符串?
答案 0 :(得分:0)
我还没有使用正则表达式操作超级好,但是解决它的方法就是这样:
import re
filter_words = [".", ""]
folder_name_info = [word for word in y.split("_")
if (word not in filter_words and
not re.search('^n[1-9]')]
此处'^n[1-9]'
表示以n开头,后跟任意数字的字符串。您还可以查看documentation on regex以了解如何使用它们。