如何在Python中提取字符串的某个部分?

时间:2015-02-17 11:12:23

标签: python regex

我想知道如何在Python中提取字符串的某个部分。

所以,我们说我有一个清单。 (实施例)

1 || awdawd@awdawd.com || awlkdjawldkjalwdkda
2 || aawdawd@awd.com || awdadwawdawdawdawd

我知道我可以使用索引并从每一行中取出最后10个左右的字符,但如果它们的长度不同,则不会起作用。它对电子邮件根本不起作用。

我正在思考正则表达式,但是一旦找到字符串的一部分,我将如何复制字符串的那一部分并将其附加到列表中。

正则表达式对于电子邮件来说很简单,但对于' ||'之后的字符串来说并不那么简单。那我该怎么做?我无法理解它。也许搜索||并得到它之后的一切?但接下来有两个' ||'。

感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

||分割后获取反向索引:

>>> L = ["|| awdawd@awdawd.com || awlkdjawldkjalwdkda", "|| aawdawd@awd.com || awdadwawdawdawdawd"]
>>> for x in L:
...     print x.split('||')[-1].strip()
... 
awlkdjawldkjalwdkda
awdadwawdawdawdawd

答案 1 :(得分:2)

首先,如果你知道字符串的确切格式,你可以使用split()函数。例如

>>> string1 = "1 || awdawd@awdawd.com || awlkdjawldkjalwdkda"
>>> list1 = string1.split("||")
>>> list1
['1 ', ' awdawd@awdawd.com ', ' awlkdjawldkjalwdkda']
>>> list1[1].strip()
'awdawd@awdawd.com'

如果使用子字符串" ||"拆分给定的字符串;您将收到三个元素的列表。电子邮件将是第二个,而strip()函数将为您提供没有空格字符的电子邮件。

如果您不知道字符串的确切结构,但是您知道要提取的子字符串可以使用正则表达式,那么有很多配方,here is one for emails

答案 2 :(得分:1)

我想你想要第一部分。这会根据||拆分输入,然后打印索引1的剥离内容。

>>> s = '1 || awdawd@awdawd.com || awlkdjawldkjalwdkda'
>>> s.split('||')[1].strip()
'awdawd@awdawd.com'
>>> L = ["|| awdawd@awdawd.com || awlkdjawldkjalwdkda", "|| aawdawd@awd.com || awdadwawdawdawdawd"]
>>> for x in L:
        print(x.split('||')[1].strip())


awdawd@awdawd.com
aawdawd@awd.com

答案 3 :(得分:1)

我认为str.split('||')就是这个用例。

要删除剩余的空格,请在返回的数组元素上使用str.strip()