У меня строка с несколькими строками.
string="""
abc def ghi
jkl end vjk
mno pqr stu
"""
Мне нужен индекс подстроки "end vjk". Индекс можно найти как string.index('end vjk')
. Но проблема в том, что вторая часть подстроки не известна заранее (vjk может быть случайно заменена любой другой строкой). Кроме того, пробелы между двумя частями могут различаться.
Я пробовал использовать следующий код.
variable='vjk'
compare='end'(\s*) '%s' %variable
string.index(compare)
Но код не работает. Может ли любое тело предположить, что я делаю неправильно?
regex может использоваться для решения этой проблемы.
string="""
abc def ghi
jkl end vjk
mno pqr stu
"""
var = 'vjk'
s = re.search("end\s+{}".format(var),string)
string.index(s.group()) # -> 17 in this case
Метод поиска объектов () ищет в строке, которая передается для любых совпадений с регулярным выражением. Объекты Match имеют метод group(), который возвращает фактический согласованный текст из искомой строки.
Вы хотите что-то подобное?
variable='vjk'
compare='end %s' %variable
string.index(compare)
variable='vjk' compare="end {0}".format(variable) string.index(compare)
стиле Python3variable='vjk' compare="end {0}".format(variable) string.index(compare)