Finding words after keyword in python

Ryan picture Ryan · Jul 9, 2011 · Viewed 81.9k times · Source

I want to find words that appear after a keyword (specified and searched by me) and print out the result. I know that i am suppose to use regex to do it, and i tried it out too, like this:

import re
s = "hi my name is ryan, and i am new to python and would like to learn more"
m = re.search("^name: (\w+)", s)
print m.groups()

The output is just:

"is"

But I want to get all the words and punctuations that comes after the word "name".

Answer

Aufwind picture Aufwind · Jul 9, 2011

Instead of using regexes you could just (for example) separate your string with str.partition(separator) like this:

mystring =  "hi my name is ryan, and i am new to python and would like to learn more"
keyword = 'name'
before_keyword, keyword, after_keyword = mystring.partition(keyword)
>>> before_keyword
'hi my '
>>> keyword
'name'
>>> after_keyword
' is ryan, and i am new to python and would like to learn more'

You have to deal with the needless whitespaces separately, though.