python - 在正则表达式 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”的前一个实例(没有/)之后获取所有内容。我尝试了各种各样的事情,但我不知道我能做些什么。有人可以在这里提供帮助吗?
解决方案
尝试在两个内部标签之间指定,不允许特殊的控制序列。例如,
stranger = re.search(r"Stranger:</strong> <span>[^<>]+?</span></p></div></div></div>", html2)
这意味着无论这两个内部标签之间是什么,都不能有其他<
或>
字符。
推荐阅读
- java - 在过滤器类中覆盖 doFilterInternal 方法时获取空令牌
- angular - 那叫什么?
- javascript - Vanilla JS ForEach 元素并分配升序变量
- asp.net - 如何在 asp.net core 3.1 中使用多个 Id 执行路由
- python-3.x - 从熊猫数据框中提取特定信息
- oracle-apex - 如何根据 Oracle Apex 表单中一个数字字段中的值创建多个字段?
- java - 如何解决 java.nio.file.AccessDeniedException 以读取 .sys 文件
- postgresql - 如何查询numrange字段的值?
- google-api - “测试安装流程”/“与 Google 集成”按钮缺失
- java - 如何从 Firebase RealTime 数据库中获取用户列表?