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

Python正则如何从players: x-y格式文本中提取横杠前后的两个数字

正则匹配实现方案

你可以使用带两个捕获组的正则表达式来实现需求,正则逻辑锚定players关键词的同时,直接拆分提取-两侧的数字:

正则表达式

r'players:\s*(\d+)\s*-\s*(\d+)'
各部分含义说明:

  • players: 固定匹配目标字段前缀,确保匹配的是你需要的players相关数据,不会误匹配其他字段
  • \s* 匹配0个或多个空白字符,兼容冒号后可能存在的空格、制表符等格式差异
  • (\d+) 第一个捕获组,匹配1位及以上的数字,对应最小玩家数(示例中的2)
  • \s*-\s* 匹配分隔符-,同时兼容横杠前后可能存在的空白
  • (\d+) 第二个捕获组,匹配1位及以上的数字,对应最大玩家数(示例中的8)

Python 调用示例

import re

# 测试输入字符串
input_str = "players: 2-8"
match_result = re.search(r'players:\s*(\d+)\s*-\s*(\d+)', input_str)

if match_result:
    # 提取结果,默认是字符串类型,可按需转整数
    min_count, max_count = map(int, match_result.groups())
    print(min_count, max_count) # 输出:2 8

方案优势

  • 不依赖字符串末尾的任何特殊字符,无论后续有没有.或者其他内容都能正常匹配
  • 兼容格式弹性高,横杠前后、冒号后有额外空格也不会匹配失败
  • 直接拆分得到两个目标数字,无需二次处理结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:24:02