提取字符串的一部分

时间:2014-07-04 04:22:28

标签: python

所以,如果我有一个字符串 randomwordabcrandomwordsxyzrandomwords并希望提取abcrandomwordsxyz如何实现这一点,abc和xyz保持不变。我对python很新,所以任何简单的东西都会非常感激。

2 个答案:

答案 0 :(得分:3)

使用正则表达式怎么样:

单步:

>>> import re
>>> s = 'randomwordabcrandomwordsxyzrandomwords'
>>> m = re.search('(abc.*?xyz)', s)
>>> m.group()
'abcrandomwordsxyz'
>>>

或者:

>>> re.findall('abc.*?xyz', s)
['abcrandomwordsxyz']
>>>

如果你有多个' xyz',那么它将匹配第一个。 (非贪婪的比赛)

最后一个不是一个好方法,只是一个选项:

>>> s[s.rfind('abc'):s.rfind('xyz')+3]
'abcrandomwordsxyz'
>>>

答案 1 :(得分:1)

这是你的答案:

import re

mystring = 'randomwordabcrandomwordsxyzrandomwords'
result   = ""

regex = re.match(r'.*?(abc.*?xyz).*?$',mystring)

if regex:
    result = regex.group(1)

print result