如何从python中的列表中的元素中提取特定字符?

时间:2016-12-02 07:16:28

标签: regex python-2.7 list

['PRE user_1/\n', '2016-11-30 11:43:32 62944 UserID-12345.jpg\n', '2016-11-28 10:07:24 29227 anpr.jpg\n', '2016-11-30 11:38:30 62944 image.jpg\n']

我有一个字符串列表,我想从每个元素中提取'name \ n'部分并存储它。例如,我想从mylist [0]中提取'name \ n',其中mylist [0] ='PRE user_ / n'。因此user_1/将被提取并存储在变量中。

 mylist = ['PRE user_1/\n', '2016-11-30 11:43:32      62944 UserID-12345.jpg\n', '2016-11-28 10:07:24      29227 anpr.jpg\n', '2016-11-30 11:38:30      62944 image.jpg\n']
 for x in mylist:
     i = 0
     userid = *extract the 'name\n' from mylist[i]
     print userid
     i = i+1

我该怎么做?正则表达式是这样做的吗?,如果是,我该如何实现它?代码片段会非常有用。

1 个答案:

答案 0 :(得分:1)

也许你可以在没有regex的情况下做到这一点。你可以尝试我的解决方案:

a = ['PRE user_1/\n', '2016-11-30 11:43:32      62944 UserID-12345.jpg\n', '2016-11-28 10:07:24      29227 anpr.jpg\n', '2016-11-30 11:38:30      62944 image.jpg\n']

def get_name(arg = ""):
    b = arg.split(" ")
    for i in b:
        if "\n" in i:
            return i.replace("\n", "")

输出:

print get_name(a[0])
user_1/
print get_name(a[1])
UserID-12345.jpg
print get_name(a[2])
anpr.jpg
print get_name(a[3])
image.jpg

另外,为了填写您提供的示例,您的代码将是:

for x in a:
    userid = get_name(x)
    print userid

输出:

user_1/
UserID-12345.jpg
anpr.jpg
image.jpg