Как найти индекс подстроки, состоящей из двух частей (с неизвестным количеством пробелов) в многострочную строку в Python

1

У меня строка с несколькими строками.

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)

Но код не работает. Может ли любое тело предположить, что я делаю неправильно?

Теги:

2 ответа

0

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(), который возвращает фактический согласованный текст из искомой строки.

0

Вы хотите что-то подобное?

variable='vjk'
compare='end %s' %variable
string.index(compare)
  • 0
    Это работает с фиксированным интервалом между end и vjk. Но если интервал меняется, то он не работает
  • 0
    или variable='vjk' compare="end {0}".format(variable) string.index(compare) стиле Python3 variable='vjk' compare="end {0}".format(variable) string.index(compare)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню