Existe-t-il un moyen de rechercher, à partir d'une chaîne, une ligne contenant une autre chaîne et de récupérer la ligne entière?
Par exemple:
string =
qwertyuiop
asdfghjkl
zxcvbnm
token qwerty
asdfghjklñ
retrieve_line("token") = "token qwerty"
vous avez mentionné "toute la ligne", donc j'ai supposé que mystring est la ligne entière.
if "token" in mystring:
print mystring
cependant si vous voulez juste obtenir "token qwerty",
>>> mystring="""
... qwertyuiop
... asdfghjkl
...
... zxcvbnm
... token qwerty
...
... asdfghjklñ
... """
>>> for item in mystring.split("\n"):
... if "token" in item:
... print item.strip()
...
token qwerty
Si vous préférez un monoplace:
matched_lines = [line for line in my_string.split('\n') if "substring" in line]
items=re.findall("token.*$",s,re.MULTILINE)
>>> for x in items:
vous pouvez également obtenir la ligne s'il y a d'autres caractères avant le jeton
items=re.findall("^.*token.*$",s,re.MULTILINE)
Ce qui précède fonctionne comme un jeton grep sur unix et le mot clé 'in' ou .contains in python et C #
s='''
qwertyuiop
asdfghjkl
zxcvbnm
token qwerty
asdfghjklñ
'''
http://pythex.org/ correspond aux 2 lignes suivantes
....
....
token qwerty
Avec des expressions régulières
import re
s="""
qwertyuiop
asdfghjkl
zxcvbnm
token qwerty
asdfghjklñ
"""
>>> items=re.findall("token.*$",s,re.MULTILINE)
>>> for x in items:
... print x
...
token qwerty