如何通过正则表达式从数据库URL字符串中提取int类型数值?
提取数据库URL中的max_connections数值
可以用Python的re模块实现,核心是用正则表达式精准捕获max_connections=后的数字部分:
完整代码实现
import re url = 'sqlite+pool:///C:/temp/test.db?max_connections=20&stale_timeout=300' # 默认值 max_connections = 5 # 正则匹配max_connections=后的数字,括号捕获目标数值 match_result = re.search(r'max_connections=(\d+)', url) if match_result: # 提取捕获组的内容并转为整数 max_connections = int(match_result.group(1)) print(max_connections) # 输出:20
关键说明
- 正则
r'max_connections=(\d+)':\d+匹配1个或多个数字,括号()将这部分数字标记为捕获组,方便后续提取 - 使用
re.search()而非re.match():因为match()只从字符串开头匹配,而参数可能出现在URL的任意位置 - 兼容参数在末尾的情况:如果URL是
...?max_connections=20(无后续&参数),这个正则依然能正确提取数字20
内容的提问来源于stack exchange,提问作者SkyWalker
相关产品推荐
相关产品推荐

