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