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

Regex提取字符串首个空格前纯数字内容的正确写法咨询

正则提取方案

原有正则的问题

  • [\s0-9]+ 会匹配所有空格、数字组合,会误匹配后续日期中的数字,也没有处理开头的#标记
  • \s[0-9]+ 匹配的是空格后的数字串,和目标内容的位置完全相反,无法匹配到开头的目标数字

正确正则表达式

方案1:捕获组写法(兼容所有正则环境)

正则规则:^#(\d+)\s
规则说明:

  • ^ 限定匹配字符串起始位置
  • # 匹配开头的井号标记
  • (\d+) 为捕获组,匹配连续数字,即你需要提取的内容,直接取第1个捕获组即可得到结果
  • \s 匹配目标数字后的首个空格,避免匹配到后续日期中的数字

方案2:零宽断言写法(支持零宽断言的环境可直接拿到结果,无需取捕获组)

正则规则:(?<=^#)\d+(?=\s)
规则说明:

  • (?<=^#) 正向零宽后行断言,限定匹配内容的前缀为字符串开头加井号
  • \d+ 匹配目标数字串
  • (?=\s) 正向零宽先行断言,限定匹配内容的后缀为空格,避免误匹配

使用示例(以Python为例)

import re
raw_text = "#1314515 22-09-2021"
# 捕获组方案
result1 = re.search(r"^#(\d+)\s", raw_text).group(1)
# 零宽断言方案
result2 = re.search(r"(?<=^#)\d+(?=\s)", raw_text).group()
print(result1) # 输出 1314515
print(result2) # 输出 1314515

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:36:03