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

求匹配前后带空格的首个数字的正则表达式

解决方案

要匹配字符串中首次出现的、前后均带有空格的数字(包含前后空格),可以使用以下正则表达式:

(?s)^.*?\K\s\d+\s

正则说明

  • (?s):开启单行模式,让.可以匹配换行符,兼容多行字符串场景
  • ^.*?:从字符串开头非贪婪匹配任意内容,确保找到第一个符合条件的目标片段
  • \K:重置匹配起始位置,丢弃前面匹配的内容,只保留后续符合要求的部分
  • \s\d+\s:匹配"空格+数字序列+空格"的核心片段,其中\d+匹配一个或多个数字

匹配验证

针对你给出的示例:

  • 示例1:"Do work 1234 hard, some city, MN 55123" → 匹配结果为1234
  • 示例2:多行字符串中1155前是换行(非空格)、60563后无空格 → 无匹配结果
  • 示例3:"yyy 33 go 45678 util" → 匹配结果为33
  • 示例4:"55 sadf sadf."中55前无空格 → 无匹配结果
  • 示例5:"PO BOX 12"中12后无空格 → 无匹配结果

如果你习惯用捕获组的方式获取结果,也可以使用:

(?s)^.*?(\s\d+\s)

此时取第一个捕获组的内容即可得到目标片段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:09:53