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

如何用Python正则表达式提取按空格分割后含数字的子串

提取含数字的空格分割子串(Python正则实现)

需求说明

从以空格分割的字符串中提取包含数字的目标子串,示例如下:

  • 输入:"Something 19.28 else" → 输出:"19.28"
  • 输入:"Someone 18.16-one-0 other" → 输出:"18.16-one-0"

实现代码

import re

string = "Someone 18.16-one-0 other"
result = re.search('(?<=\s)\d.*?(?=\s|\Z)', string).group()
print(result)  # 输出:18.16-one-0

代码与正则解释

Python的re.search()函数会在目标字符串中匹配指定正则模式,返回匹配对象(match object),调用.group()方法即可提取匹配到的字符串内容。

正则表达式(?<=\s)\d.*?(?=\s|\Z)可拆解为三部分:

  • (?<=\s):正向断言,确保匹配内容的前一个字符是空格
  • \d.*?:匹配以数字开头的任意内容,?启用非贪婪模式,避免过度匹配后续内容
  • (?=\s|\Z):正向断言,确保匹配内容的后一个字符是空格,或是字符串结尾(\Z表示行尾)

关键细节

非贪婪模式的.*?会让正则匹配到第一个符合后续断言条件的位置就停止,以此精准捕获单个空格分割的含数字子串,不会误匹配到后续无关内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:55:16