Python正则表达式:如何匹配不包含特定字符的字符串
本文介绍在Python中使用正则表达式匹配以https?://开头、以jpg/png/jpeg结尾的字符串,并排除空格及引号等干扰字符的方法。通过实例演示从基础表达式到优化表达式的过程,展示如何利用[^ ",]排除特定字符,实现精准匹配。
匹配目标与初步尝试
一、匹配目标
需要提取文件中所有以 https?:// 开头,并以 .jpg、.png 或 .jpeg 结尾的字符串。
二、尝试过程
1)
首先想到的正则表达式为 r'(https?://.*?.jpg|https?://.*?.png|https?://.*?.jpeg)',可简化书写为 r'(https?://.*?\.(?:jpg|png|jpeg)'。
使用上述表达式进行匹配,得到的结果为 ['http://sdsdsdadadsdsdsddsdsdawwii,https://sdsdoijcjz.jpg']。可以发现结果并不符合预期,其中混入了逗号等无关符号,因此需要进一步处理以去除这些干扰字符。
优化正则表达式排除干扰字符
2)将正则表达式修改为 r'(https?://[^ ",]*?\.jpg|https?://[^ ",]*?\.png)',简化后可写为 r'(https?://[^, "]*?\.(?:jpg|png|jpeg))'。这里利用 [^ ",] 来排除空格、单引号和双引号。
修改后的匹配结果为:[https://sdsdoijcjz.jpg']。
此时匹配结果完美符合预期。
以上关于Python正则表达式匹配不包含特定字符字符串的方法分享完毕,希望能为大家提供参考,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













