使用python string.find()函数在字符串中向后遍历

时间:2014-12-11 07:09:24

标签: python python-2.7

我有一个字符串

mystr = "My mail id is abcd1234@account.com and xzy1234@mailinglist.com"
index = mymail.find('@') #gives me index using which i can traverse further with the mail id

如何在@(即abcd1234和xzy1234)之前获得单词并在@(即account.com和mailinglist.com)之后使用单词而不使用list并仅使用find。

代表:

index = mymail.find('@')
res = mymail.find(' ',index)
mystr[index+1:res] gives me --> account.com

2 个答案:

答案 0 :(得分:1)

您可以使用re.findall功能,如下所示,

>>> s = 'My mail id is abcd1234@account.com and xzy1234@mailinglist.com'

要在@之前得到这个词,

>>> re.findall(r'\S+(?=@)', s)
['abcd1234', 'xzy1234']

要在@后面找到这个词,

>>> re.findall(r'(?<=@)\S+', s)
['account.com', 'mailinglist.com']

\S+匹配一个或多个非空格字符。 (?=@)正向前瞻声明匹配必须后跟@符号。 (?<=@)肯定的外观断言,匹配必须以@符号开头。

答案 1 :(得分:1)

直接回答您的问题:

S.rfind(sub [,start [,end]]) -> int

rfind查找字符串中的“last”空格而不是第一个空格。