python正则表达式多匹配成了断句
今天在测试url正则匹配的时候,出现了在“在线测试正则表达式”的网站,明明可以正常匹配URL的,但是在python上就出现了断句,类似:
<div class="right">\r\n <div style="text-align: left;color: #1D51B4;font-weight: 600;padding-left: 40px;font-size: 16px;">\r\n 交管12123APP下载\r\n </div>\r\n <img src="https://static.122.gov.cn/V1.24.5/plat/static/img/mapSelect.png" style="width: 87%;">\r\n </div>\r\n </div>\r\n </div>\r\n <div id="content">\r\n \r\n <div id="content-title">\r\n \r\n \r\n \r\n 各地平台网站\r\n \r\n \r\n
正则表达式:
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
在在线测试的网站上可以匹配出:
https://static.122.gov.cn/V1.24.5/plat/static/img/mapSelect.png
而用python这么写:
import re
pattern = re.compile(r'(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?')
print(pattern.findall(html))
则匹配成了:
(("http", "/", "png"))
后来参考了:https://blog.csdn.net/yu_1628060739/article/details/102767158
发现需要在每个括号中加入?:
把捕获组转变为一个非捕获组就可以完整匹配了:
import re
pattern = re.compile(r'(?:http|ftp|https):\/\/[\w\-_]+(?:\.[\w\-_]+)+(?:[\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?')
print(pattern.findall(html))
python正则表达式多匹配成了断句相关推荐
- python正则表达式如何匹配“+”,“*”
python正则表达式如何匹配"+","*","-" +,*,-在正则表达式匹配里面都是元字符有特殊含义: +表示匹配1个或多个 *表示匹配 ...
- 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配
此文为python正则表达式的高阶入门,正则基础入门请参考程序员入门基础:python的正则表达式. 一.贪婪匹配和非贪婪匹配 举例说明概念: print('非贪婪匹配',re.search('el+ ...
- python正则表达式贪婪匹配_Python正则表达式教程之三:贪婪/非贪婪特性
之前已经简单介绍了Python正则表达式的基础与捕获,那么在这一篇文章里,我将总结一下正则表达式的贪婪/非贪婪特性. 贪婪 默认情况下,正则表达式将进行贪婪匹配.所谓"贪婪",其实 ...
- python正则表达式模糊匹配_python 正则表达式
正则表达式的作用:用来匹配字符串 一.字符串方法 字符串提供的方法是完全匹配,不能进行模糊匹配 s = 'hello world' # 字符串提供的方法是完全匹配,不能进行模糊匹配 print(s.f ...
- Python 正则表达式完美匹配中文与中文标点符号
匹配中文标点符号: [\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b] 匹配中文字符的正则表达式: [ ...
- python正则表达式模糊匹配_用python正则表达式编译模糊正则表达式
当我发现python regex模块可以进行模糊匹配时,我感到非常高兴,因为它似乎是解决我许多问题的简单方法. 但是现在我遇到了一个问题,我没有从文档中找到任何答案. 如何使用新的模糊性值功能将字符串 ...
- python正则表达式,匹配电话号码
#写一个正则表达式,能匹配出多种格式的电话号码,包括: text = "(021)88776543 010-55667890 02584533622 057184720483 8379227 ...
- python正则表达式\d 匹配数字\D 匹配非数字\w 匹配单词\W 匹配非单词字符
一个\d代表一个数字.开头没匹配到,即使字符串其他部分包含需要匹配的内容,.match也会返回none import re a = re.match('\d\d','23es12testasdtest ...
- python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...
Python正则表达式 贪婪匹配/最小匹配 Re库默认采用贪婪匹配,即匹配最长的子字符串.在量词后面加一个"?",即可由贪婪匹配化为最小匹配. '*'用于将前面的模式匹配0次或多次 ...
最新文章
- 扩展js string 方法
- OpenCV尺寸调整函数resize
- input 中的autoComplete属性
- 【Oracle Database】数据库控制文件管理
- 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
- Spring Boot中使用Spring-data-jpa让数据访问更简单、更优雅
- php dom 丢失内容,PHP DOMDocument缺失
- JS代码实例:实现随机加载不同的CSS样式
- 小数点保留若干位小数 %.*f
- 笔记_pytorch
- Linux 设置交换分区
- Git 操作实战示例
- linux下opendir的使用
- c语言最小二乘求解超定方程,超定方程用最小二乘法求解
- 龙世界java下载_龙世界3-龙王之剑
- Unity 之自动化打包ipa
- 什么是DAOstack
- 罗永浩微博发声,锤子或再出新一代坚果手机?
- 论文阅读:《POI: Multiple Object Tracking with High Performance Detection and Appearance Feature 》
- 成都北大青鸟怎么样?