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

Python正则表达式问题:匹配字符串末尾到第二个点的数字内容

问题分析与解决

原正则的问题

你写的([\d].[\d])$有三个核心问题:

  1. 匹配范围太窄:[\d]只能匹配单个数字,无法匹配连续的多位数(比如4451363243是10位数字,单个[\d]只能抓取其中一位)
  2. 点号未转义:未加反斜杠的.会匹配任意字符,而你需要匹配的是字面意义的点号(写法不严谨)
  3. 位置逻辑错误:整个表达式要求“数字+任意字符+数字”出现在字符串结尾,但你要匹配的点号是在目标内容的中间,不是结尾,所以根本匹配不到符合条件的内容

正确的正则写法

针对你的需求,有两种简单的实现思路:

思路1:匹配结尾的数字+点+数字串

目标内容刚好是字符串的最后一段,直接匹配结尾的“多位数+点+多位数”即可:

\d+\.\d+$
  • \d+:匹配1个或多个连续数字
  • \.:转义后匹配字面意义的点号
  • $:锚定到字符串结尾,确保匹配的是最后一段内容

思路2:匹配第二个.之后的内容

如果字符串结构固定为前缀.前缀.目标内容,也可以用正向零宽断言定位到第二个.之后:

(?<=\.\d\.)\d+\.\d+$
  • (?<=\.\d\.):正向零宽断言,确保前面是“点+单个数字+点”(对应原字符串的.2.部分),直接匹配后面的目标内容

Python代码示例

import re

target_str = "GA1.2.4451363243.9414195136"
# 使用思路1的正则
result = re.search(r'\d+\.\d+$', target_str)
if result:
    print(result.group())  # 输出:4451363243.9414195136

内容的提问来源于stack exchange,提问作者Ibrahim Azhar Armar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:05:24