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

如何使用正则表达式提取字符串中嵌入单词内的数字?

提取嵌入单词内部数字的正则方案

你需要匹配的是仅出现在单词内部的数字——也就是数字前后至少有一侧是字母,而非单独存在的数字序列。可以通过正则表达式的环视断言实现:

正则表达式

(?<=[a-zA-Z])\d+|\d+(?=[a-zA-Z])

代码示例

import re

text = 'I need this number inside my wor5d, but also this word3 and this 4word, but not this 1 and not this 555.'
target_numbers = re.findall(r'(?<=[a-zA-Z])\d+|\d+(?=[a-zA-Z])', text)
print(target_numbers)  # 输出: ['5', '3', '4']

正则逻辑解释

  • (?<=[a-zA-Z])\d+:正向回顾后发断言,匹配前面紧跟字母的数字序列(对应wor5d里的5、word3里的3)
  • |:逻辑或,匹配满足任意一侧条件的内容
  • \d+(?=[a-zA-Z]):正向预发断言,匹配后面紧跟字母的数字序列(对应4word里的4)

这个正则会自动排除单独存在的数字(比如示例中的1、555),因为它们前后都没有字母,不满足任一断言条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:53:20