Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中提取字符串的特定部分?_Python_Regex - Fatal编程技术网

如何在Python中提取字符串的特定部分?

如何在Python中提取字符串的特定部分?,python,regex,Python,Regex,我想知道如何在Python中提取字符串的某个部分 那么,假设我有一个列表。(示例) 我知道我可以使用索引,从每行中提取最后10个左右的字符,但如果它们的长度不同,那就行不通了。而且这对电子邮件根本不起作用 我在考虑正则表达式,但是一旦我找到了字符串的那一部分,我该如何复制字符串的那一部分并将其附加到列表中呢 正则表达式对于电子邮件很简单,但对于“| |”后面的字符串就不那么简单了。那我该怎么做呢?我很难理解它。也许搜索| |然后得到所有东西?但还有两个“| |” 非常感谢您的帮助。按|拆分后获取

我想知道如何在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'