Возвращаясь в регулярное выражение Python - PullRequest
0 голосов
/ 29 апреля 2020

Я пытался это делать весь день и не могу найти решение. Вот мой текущий код:

stranger = re.search(r"Stranger:</strong> <span>.+?</span></p></div></div></div>", html2)

Я хочу получить такой результат:

"Stranger:</strong> <span>What now?</span></p></div></div></div>" = True

из такой строки:

"<div class=\"logitem\"><p class=\"strangermsg\"><strong class=\"msgsource\">Stranger:</strong> <span>Wow</span></p></div><div class=\"logitem\"><p class=\"youmsg\"><strong class="msgsource">You:</strong> <span>Eek</span></p></div><div class=\"logitem\"><p class=\"strangermsg\"><strong class=\"msgsource\">Stranger:</strong> <span>What now?</span></p></div></div></div>"

Вместо этого я получаю this:

"Stranger:</strong> <span>Wow</span></p></div><div class=\"logitem\"><p class=\"youmsg\"><strong class=\"msgsource\">You:</strong> <span>Eek</span></p></div><div class=\"logitem\"><p class=\"strangermsg\"><strong class=\"msgsource\">Stranger:</strong> <span>What now?</span></p></div></div></div>" = True

По сути, я хочу получить все до "/ span p div div div" и после предыдущего экземпляра "span" (no /). Я пробовал разные вещи, но я не знаю, что я мог бы сделать. Кто-нибудь может здесь помочь?

1 Ответ

1 голос
/ 29 апреля 2020

Попробуйте указать, что между двумя внутренними тегами не допускаются специальные управляющие последовательности. Например,

stranger = re.search(r"Stranger:</strong> <span>[^<>]+?</span></p></div></div></div>", html2)

Это означает, что независимо от того, что находится между этими двумя внутренними тегами, не может быть других < или > символов.

...