扫码关注官方订阅号
ab
正则表达式是: (.*)<\/td> 我期待出现: ["a","b"] 可是结果是: ["ab"] 3 0 0 黄舟 人生最曼妙的风景,竟是内心的淡定与从容! 全部回复(3) 我来回复 PHP中文网2017-04-17 11:48:21 3楼 你应该使用惰性数量修饰符(lazy/non-greedy qualifiers)。 <td>(.*?)<\/td> 推荐阅读: http://deerchao.net/tutorials/regex/regex.htm#greedyandlazy 赞 +0 添加回复 黄舟 回复 伊谢尔伦2017-04-17 11:48:21 2楼 python的正則默認是貪婪(greedy)的(事實上大多數正則的實現都這麼默認)。 你的例子中有兩個<\/td>,所以有兩種匹配,匹配到第一個,那就是你期望的結果 ["a","b"],匹配到第二個,那就是實際的結果,["a</td><td>b"]。後者比前者長,所以最終匹配結果是第二個。這就是所謂的貪婪模式,找最長的匹配。 你需要的是非貪婪(non-greedy)模式,也叫最小(minimal)模式,也就是匹配盡可能短的字符串。很簡單,只要加上一個?即可,也就是說改成<td>(.*?)<\/td>。 當然,非貪婪可能有性能問題。我不知道 python 有沒有針對這方面的優化。就你的問題而言,用貪婪模式也可以實現,比如 <td>([^<]*)<\/td>。 赞 +0 添加回复 黄舟 回复 黄舟2017-04-17 11:48:21 1楼 送你两个字"断言",搜一下就明白了 赞 +0 添加回复 黄舟 回复 专题推荐 更多> 硬盘的接口类型介绍 mongodb启动命令 打印机脱机状态怎么恢复正常打印 编程软件有哪些 热门话题 QQ邮箱格式怎么填写 QQ邮箱格式怎么填写 qq邮箱的格式怎么填 qq邮箱的格式是什么 俄罗斯Yandex搜索引擎免登录入口 Yandex搜索引擎官网一键直达 怎么在电脑上定闹钟时间设置_Windows系统闹钟设置全攻略 如何在苹果手机上下载并安装OKX交易所 比特币八大交易软件榜单 最受欢迎的比特币交易app盘点 币圈三大交易所下载 ArchiveofOurOwn官方网站地址 ArchiveofOurOwn镜像站官方访问链接 Yandex官网登录入口_Yandex国际版搜索引擎链接 热门教程 更多> 相关教程 热门推荐 最新课程 JavaScript ES5基础线上课程教学 64937次学习 收藏 最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课) 1484960次学习 收藏 phpStudy极速入门视频教程 529754次学习 收藏 独孤九贱(4)_PHP视频教程 1249519次学习 收藏 PHP实战天龙八部之仿爱奇艺电影网站 769630次学习 收藏 最新Python教程 从入门到精通 2726次学习 收藏 JavaScript ES5基础线上课程教学 64937次学习 收藏 PHP新手语法线上课程教学 6428次学习 收藏 支付宝沙箱支付(个人也能用的支付) 4508次学习 收藏 麻省理工大佬Python课程 41271次学习 收藏 最新下载 更多> 网站特效 网站源码 网站素材 前端模板 [表单按钮] jQuery企业留言表单联系代码 [播放器特效] HTML5 MP3音乐盒播放特效 [菜单导航] HTML5炫酷粒子动画导航菜单特效 [表单按钮] jQuery可视化表单拖拽编辑代码 [播放器特效] VUE.JS仿酷狗音乐播放器代码 [html5特效] 经典html5推箱子小游戏 [图片特效] jQuery滚动添加或减少图片特效 [相册特效] CSS3个人相册封面悬停放大特效 [电商源码] 国际互联眼网友供需系统 [电商源码] 精美淘宝客单页面 zblog模板 [电商源码] WebShop开源网上购物系统 [电商源码] ECSHOP仿OPPO手机商城源码 [电商源码] 云点滴客户关系管理CRM OA系统 [电商源码] 淄博分类信息港程序seo特别版 [电商源码] 仿M18紫色版整站 For SHOPEX [电商源码] 佳可购物 2005 [psd素材] 购物节促销折扣主题海报设计下载 [psd素材] 酒吧聚会宣传海报PSD源文件设计下载 [psd素材] 快餐美食招贴海报设计源文件下载 [矢量素材] 节日礼物包装袋合集矢量素材 [psd素材] 特价美食产品招贴海报PSD模板设计下载 [矢量素材] 立冬节气简约海报矢量模板 [psd素材] 啤酒特价折扣宣传方形海报素材下载 [psd素材] 美味甜甜圈美食正方形海报PSD模板下载 [前端模板] 驾照考试驾校HTML5网站模板 [前端模板] 驾照培训服务机构宣传网站模板 [前端模板] HTML5房地产公司宣传网站模板 [前端模板] 新鲜有机肉类宣传网站模板 [前端模板] 响应式天气预报宣传网站模板 [前端模板] 房屋建筑维修公司网站CSS模板 [前端模板] 响应式志愿者服务网站模板 [前端模板] 创意T恤打印店网站HTML5模板 关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English php中文网:公益在线php培训,帮助PHP学习者快速成长! 关注服务号 微信扫码关注PHP中文网服务号 技术交流群 QQ扫码加入技术交流群 PHP中文网订阅号 每天精选资源文章推送 PHP中文网APP 随时随地碎片化学习 Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号 PHP学习 技术支持 返回顶部
(.*)<\/td> 我期待出现: ["a","b"] 可是结果是: ["ab"] 3 0 0 黄舟 人生最曼妙的风景,竟是内心的淡定与从容! 全部回复(3) 我来回复 PHP中文网2017-04-17 11:48:21 3楼 你应该使用惰性数量修饰符(lazy/non-greedy qualifiers)。 <td>(.*?)<\/td> 推荐阅读: http://deerchao.net/tutorials/regex/regex.htm#greedyandlazy 赞 +0 添加回复 黄舟 回复 伊谢尔伦2017-04-17 11:48:21 2楼 python的正則默認是貪婪(greedy)的(事實上大多數正則的實現都這麼默認)。 你的例子中有兩個<\/td>,所以有兩種匹配,匹配到第一個,那就是你期望的結果 ["a","b"],匹配到第二個,那就是實際的結果,["a</td><td>b"]。後者比前者長,所以最終匹配結果是第二個。這就是所謂的貪婪模式,找最長的匹配。 你需要的是非貪婪(non-greedy)模式,也叫最小(minimal)模式,也就是匹配盡可能短的字符串。很簡單,只要加上一個?即可,也就是說改成<td>(.*?)<\/td>。 當然,非貪婪可能有性能問題。我不知道 python 有沒有針對這方面的優化。就你的問題而言,用貪婪模式也可以實現,比如 <td>([^<]*)<\/td>。 赞 +0 添加回复 黄舟 回复 黄舟2017-04-17 11:48:21 1楼 送你两个字"断言",搜一下就明白了 赞 +0 添加回复 黄舟 回复 专题推荐 更多> 硬盘的接口类型介绍 mongodb启动命令 打印机脱机状态怎么恢复正常打印 编程软件有哪些 热门话题 QQ邮箱格式怎么填写 QQ邮箱格式怎么填写 qq邮箱的格式怎么填 qq邮箱的格式是什么 俄罗斯Yandex搜索引擎免登录入口 Yandex搜索引擎官网一键直达 怎么在电脑上定闹钟时间设置_Windows系统闹钟设置全攻略 如何在苹果手机上下载并安装OKX交易所 比特币八大交易软件榜单 最受欢迎的比特币交易app盘点 币圈三大交易所下载 ArchiveofOurOwn官方网站地址 ArchiveofOurOwn镜像站官方访问链接 Yandex官网登录入口_Yandex国际版搜索引擎链接 热门教程 更多> 相关教程 热门推荐 最新课程 JavaScript ES5基础线上课程教学 64937次学习 收藏 最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课) 1484960次学习 收藏 phpStudy极速入门视频教程 529754次学习 收藏 独孤九贱(4)_PHP视频教程 1249519次学习 收藏 PHP实战天龙八部之仿爱奇艺电影网站 769630次学习 收藏 最新Python教程 从入门到精通 2726次学习 收藏 JavaScript ES5基础线上课程教学 64937次学习 收藏 PHP新手语法线上课程教学 6428次学习 收藏 支付宝沙箱支付(个人也能用的支付) 4508次学习 收藏 麻省理工大佬Python课程 41271次学习 收藏 最新下载 更多> 网站特效 网站源码 网站素材 前端模板 [表单按钮] jQuery企业留言表单联系代码 [播放器特效] HTML5 MP3音乐盒播放特效 [菜单导航] HTML5炫酷粒子动画导航菜单特效 [表单按钮] jQuery可视化表单拖拽编辑代码 [播放器特效] VUE.JS仿酷狗音乐播放器代码 [html5特效] 经典html5推箱子小游戏 [图片特效] jQuery滚动添加或减少图片特效 [相册特效] CSS3个人相册封面悬停放大特效 [电商源码] 国际互联眼网友供需系统 [电商源码] 精美淘宝客单页面 zblog模板 [电商源码] WebShop开源网上购物系统 [电商源码] ECSHOP仿OPPO手机商城源码 [电商源码] 云点滴客户关系管理CRM OA系统 [电商源码] 淄博分类信息港程序seo特别版 [电商源码] 仿M18紫色版整站 For SHOPEX [电商源码] 佳可购物 2005 [psd素材] 购物节促销折扣主题海报设计下载 [psd素材] 酒吧聚会宣传海报PSD源文件设计下载 [psd素材] 快餐美食招贴海报设计源文件下载 [矢量素材] 节日礼物包装袋合集矢量素材 [psd素材] 特价美食产品招贴海报PSD模板设计下载 [矢量素材] 立冬节气简约海报矢量模板 [psd素材] 啤酒特价折扣宣传方形海报素材下载 [psd素材] 美味甜甜圈美食正方形海报PSD模板下载 [前端模板] 驾照考试驾校HTML5网站模板 [前端模板] 驾照培训服务机构宣传网站模板 [前端模板] HTML5房地产公司宣传网站模板 [前端模板] 新鲜有机肉类宣传网站模板 [前端模板] 响应式天气预报宣传网站模板 [前端模板] 房屋建筑维修公司网站CSS模板 [前端模板] 响应式志愿者服务网站模板 [前端模板] 创意T恤打印店网站HTML5模板 关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English php中文网:公益在线php培训,帮助PHP学习者快速成长! 关注服务号 微信扫码关注PHP中文网服务号 技术交流群 QQ扫码加入技术交流群 PHP中文网订阅号 每天精选资源文章推送 PHP中文网APP 随时随地碎片化学习 Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号 PHP学习 技术支持 返回顶部
["a
人生最曼妙的风景,竟是内心的淡定与从容!
你应该使用惰性数量修饰符(lazy/non-greedy qualifiers)。
<td>(.*?)<\/td>
推荐阅读: http://deerchao.net/tutorials/regex/regex.htm#greedyandlazy
python的正則默認是貪婪(greedy)的(事實上大多數正則的實現都這麼默認)。
你的例子中有兩個<\/td>,所以有兩種匹配,匹配到第一個,那就是你期望的結果 ["a","b"],匹配到第二個,那就是實際的結果,["a</td><td>b"]。後者比前者長,所以最終匹配結果是第二個。這就是所謂的貪婪模式,找最長的匹配。
<\/td>
["a","b"]
["a</td><td>b"]
你需要的是非貪婪(non-greedy)模式,也叫最小(minimal)模式,也就是匹配盡可能短的字符串。很簡單,只要加上一個?即可,也就是說改成<td>(.*?)<\/td>。
?
當然,非貪婪可能有性能問題。我不知道 python 有沒有針對這方面的優化。就你的問題而言,用貪婪模式也可以實現,比如 <td>([^<]*)<\/td>。
<td>([^<]*)<\/td>
送你两个字"断言",搜一下就明白了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你应该使用惰性数量修饰符(lazy/non-greedy qualifiers)。
<td>(.*?)<\/td>推荐阅读: http://deerchao.net/tutorials/regex/regex.htm#greedyandlazy
python的正則默認是貪婪(greedy)的(事實上大多數正則的實現都這麼默認)。
你的例子中有兩個
<\/td>,所以有兩種匹配,匹配到第一個,那就是你期望的結果["a","b"],匹配到第二個,那就是實際的結果,["a</td><td>b"]。後者比前者長,所以最終匹配結果是第二個。這就是所謂的貪婪模式,找最長的匹配。你需要的是非貪婪(non-greedy)模式,也叫最小(minimal)模式,也就是匹配盡可能短的字符串。很簡單,只要加上一個
?即可,也就是說改成<td>(.*?)<\/td>。當然,非貪婪可能有性能問題。我不知道 python 有沒有針對這方面的優化。就你的問題而言,用貪婪模式也可以實現,比如
<td>([^<]*)<\/td>。送你两个字"断言",搜一下就明白了