Подтвердить что ты не робот

Поиск и получение строки в Python

Есть ли способ поиска из строки строки с другой строкой и извлечения всей строки?

Например:

string = 
    qwertyuiop
    asdfghjkl

    zxcvbnm
    token qwerty

    asdfghjklñ

retrieve_line("token") = "token qwerty"
4b9b3361

Ответ 1

вы упомянули "целую строку", поэтому я предположил, что мистика - это целая строка.

if "token" in mystring:
    print mystring

однако, если вы хотите просто получить "токен qwerty",

>>> mystring="""
...     qwertyuiop
...     asdfghjkl
...
...     zxcvbnm
...     token qwerty
...
...     asdfghjklñ
... """
>>> for item in mystring.split("\n"):
...  if "token" in item:
...     print item.strip()
...
token qwerty

Ответ 2

Если вы предпочитаете один лайнер:

matched_lines = [line for line in my_string.split('\n') if "substring" in line]

Ответ 3

С регулярными выражениями

import re
s="""
    qwertyuiop
    asdfghjkl

    zxcvbnm
    token qwerty

    asdfghjklñ
"""
>>> items=re.findall("token.*$",s,re.MULTILINE)
>>> for x in items:
...     print x
...
token qwerty

Ответ 4

items=re.findall("token.*$",s,re.MULTILINE)
>>> for x in items:

вы также можете получить строку, если перед маркером есть другие символы

items=re.findall("^.*token.*$",s,re.MULTILINE)

Вышеупомянутое работает как маркер grep для unix и ключевое слово 'in' или .contains в python и С#

s='''
qwertyuiop
asdfghjkl

zxcvbnm
token qwerty

asdfghjklñ
'''

http://pythex.org/ соответствует следующим двум строкам

....
....
token qwerty