在python 3.x中使用正则表达式抓取字符串的一部分

时间:2013-08-26 07:34:59

标签: python regex string python-3.x findall

所以我想要做的是有一个名为a的输入字段。然后有一行正则表达式检查'我是(某事)'(注意某事可能是一连串的话。)然后打印你有多久(某事)?

到目前为止,这是我的代码:

if re.findall(r"i am", a):
    print('How long have you been {}'.format(re.findall(r"i am", a)))

但这会给我一个[我,我]不是(某事)的清单。我如何让它回来(某事?)

谢谢,

Python的n00b

2 个答案:

答案 0 :(得分:2)

你的意思是这样吗?

>>> import re
>>> a = "I am a programmer"
>>> reg = re.compile(r'I am (.*?)$')
>>> print('How long have you been {}'.format(*reg.findall(a)))
How long have you been a programmer

r'I am (.*?)$'匹配I am,然后将所有其他内容匹配到字符串的末尾。


要匹配一个单词后,您可以执行以下操作:

>>> a = "I am an apple"
>>> reg = re.compile(r'I am (\w+).*?$')
>>> print('How long have you been {}'.format(*reg.findall(a)))
How long have you been an

答案 1 :(得分:0)

可能只是避免重量和成本正则表达式的简单解决方案

>>> a = "i am foxmask"
>>> print a[5:]
foxmask