首页 > 解决方案 > 在正则表达式 Python 中倒退

问题描述

我整天都在尝试这个,但找不到解决方案。这是我当前的代码:

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>"

相反,我得到了这个:

"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”的前一个实例(没有/)之后获取所有内容。我尝试了各种各样的事情,但我不知道我能做些什么。有人可以在这里提供帮助吗?

标签: pythonregexparsing

解决方案


尝试在两个内部标签之间指定,不允许特殊的控制序列。例如,

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

这意味着无论这两个内部标签之间是什么,都不能有其他<>字符。


推荐阅读