Поиск и получение строки в Python
Есть ли способ поиска из строки строки с другой строкой и извлечения всей строки?
Например:
string =
qwertyuiop
asdfghjkl
zxcvbnm
token qwerty
asdfghjklñ
retrieve_line("token") = "token qwerty"
Ответы
Ответ 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