python - Python RegEx Match 虽然匹配但不匹配
问题描述
我正在尝试提取子字符串(在本例中为“危险区案例”),但它返回错误:
>>> res = 'class=\\"market_listing_item_name\\" style=\\"color: #D2D2D2;\\">Danger Zone Case<\\/span>'
>>> item = re.search('market_listing_item_name\\.+?>(.+?)<', res).group(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
虽然当我进入https://regexr.com/上的展位时,我得到了匹配。我究竟做错了什么?
解决方案
中的反斜杠'market_listing_item_name\\.+?>(.+?)<'
被视为特殊字符。要告诉 python 将它们视为文字字符,请使用原始字符串:r'market_listing_item_name\\.+?>(.+?)<'
.
一个好的提示是在 python 中编写正则表达式时,总是在字符串前面加上那个 r,这有助于避免一些令人头疼的问题 :)
推荐阅读
- c# - 过滤对象列表
- c++ - G++ 7.1.0 及更高版本支持此构造函数中的保证复制省略,但 Clang++ 4.0 及更高版本不支持
- java - 如何获取不一次显示所有行的表的行数?
- javascript - 无法更改图像的宽度和高度
- python - 如何以分数形式打印指数结果?
- asp.net-mvc - 'Signal R' 客户端 .js 未收到来自服务器的任何响应
- spring - Spring Integration:手动通道处理
- c++ - 删除数组中的多个元素
- c# - JsonConvert.DeserializeObject 中的“无法对空引用执行运行时绑定”
( 回复 ) - javascript - 使用 JavaScript 或 jQuery 从父/父动态获取第一个标题标签