如何在Python中提取字符串的特定部分?
我想知道如何在Python中提取字符串的某个部分 那么,假设我有一个列表。(示例) 我知道我可以使用索引,从每行中提取最后10个左右的字符,但如果它们的长度不同,那就行不通了。而且这对电子邮件根本不起作用 我在考虑正则表达式,但是一旦我找到了字符串的那一部分,我该如何复制字符串的那一部分并将其附加到列表中呢 正则表达式对于电子邮件很简单,但对于“| |”后面的字符串就不那么简单了。那我该怎么做呢?我很难理解它。也许搜索| |然后得到所有东西?但还有两个“| |”如何在Python中提取字符串的特定部分?,python,regex,Python,Regex,我想知道如何在Python中提取字符串的某个部分 那么,假设我有一个列表。(示例) 我知道我可以使用索引,从每行中提取最后10个左右的字符,但如果它们的长度不同,那就行不通了。而且这对电子邮件根本不起作用 我在考虑正则表达式,但是一旦我找到了字符串的那一部分,我该如何复制字符串的那一部分并将其附加到列表中呢 正则表达式对于电子邮件很简单,但对于“| |”后面的字符串就不那么简单了。那我该怎么做呢?我很难理解它。也许搜索| |然后得到所有东西?但还有两个“| |” 非常感谢您的帮助。按|拆分后获取
非常感谢您的帮助。按
|
拆分后获取反向索引:
>>> L = ["|| awdawd@awdawd.com || awlkdjawldkjalwdkda", "|| aawdawd@awd.com || awdadwawdawdawdawd"]
>>> for x in L:
... print x.split('||')[-1].strip()
...
awlkdjawldkjalwdkda
awdadwawdawdawdawd
我想你想要第一部分。这将根据
|
拆分输入,然后打印索引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
我认为正是这个用例
要删除剩余的空白,请对返回的数组元素使用
str.strip()
。首先,如果您知道字符串的确切格式,可以使用split()函数。比如说
>>> string1 = "1 || awdawd@awdawd.com || awlkdjawldkjalwdkda"
>>> list1 = string1.split("||")
>>> list1
['1 ', ' awdawd@awdawd.com ', ' awlkdjawldkjalwdkda']
>>> list1[1].strip()
'awdawd@awdawd.com'
如果使用子字符串“| |”拆分给定字符串,将收到包含三个元素的列表。电子邮件将是第二封,strip()函数将为您提供不带空格字符的电子邮件
如果您不知道字符串的确切结构,但知道要提取哪些子字符串,可以使用正则表达式,那么有很多方法可供选择。您要提取字符串的哪一部分?是否要基于
|
进行拆分并获取第三个元素?在第一个|
之后是否始终有电子邮件?如果是这样,只需查找后面没有电子邮件或前面没有数字的|
。基本上,我想将一个列表解析为:email:finalstring,但您的示例不同。好的,@Aleksander,但我如何实际提取字符串的这一部分?这似乎可行。嗯,[-1]做什么?从绳子后面读?@Aurora差不多:啊,我明白了。你刚才也在第一次回答我的问题。非常感谢。
>>> string1 = "1 || awdawd@awdawd.com || awlkdjawldkjalwdkda"
>>> list1 = string1.split("||")
>>> list1
['1 ', ' awdawd@awdawd.com ', ' awlkdjawldkjalwdkda']
>>> list1[1].strip()
'awdawd@awdawd.com'