You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python re模块无法匹配斜杠后的字符串,请求技术解答

问题解析与解决办法

哈哈,这个正则的小坑我刚入门的时候也踩过!你遇到的问题和/是不是普通字符完全没关系,核心是**re.match()方法的匹配规则**——它只会从字符串的起始位置开始尝试匹配,你的字符串是link/123,开头是l,根本不是123,所以自然返回None啦。

解决方法有两种:

  • 改用re.search()方法:它会扫描整个字符串去寻找匹配的内容,不管位置在哪里,代码调整后如下:
import re
mystr='link/123'
pattern = re.compile(r'123')
print(pattern.search(mystr))  # 会返回匹配对象 <re.Match object; span=(5, 8), match='123'>
  • 如果一定要用match,可以修改正则表达式,让它匹配开头到123的任意内容,比如:
import re
mystr='link/123'
pattern = re.compile(r'.*123')
print(pattern.match(mystr))  # 同样会返回匹配对象

不过这种方式有点画蛇添足,search是更直接的选择。

额外补充:

  • re.match():仅匹配字符串开头
  • re.search():扫描整个字符串,返回第一个匹配项
  • re.fullmatch():要求整个字符串完全和正则匹配

内容的提问来源于stack exchange,提问作者tim chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:39:28