如何用正则表达式提取单词末尾的单个数字(排除其他数值)
提取单词末尾单个数字的正则表达式方案
直接给你能用的正则:
(?<=[A-Za-z])\d(?!\d|\.)
规则解释
(?<=[A-Za-z]):确保数字的前一个字符是英文字母,直接排除开头带数字的单词(比如2Fund)\d:精准匹配单个数字(?!\d|\.):确保数字后面没有其他数字或者小数点,以此排除多位数(如50 000)和带小数的数值(如13.2)
示例验证
拿你提供的文本测试,匹配到的正好是那些加粗的数字:1、2、1、2,完全符合需求。
如果你的文本包含HTML标签(比如示例里的<strong>),建议先剥离标签后再用上述正则;要是想直接在带标签的文本里匹配,也可以用这个调整版:
(?<=[A-Za-z])\d(?=</strong>)
不过前者更通用,毕竟标签格式可能有变动。
内容的提问来源于stack exchange,提问作者Spada
相关产品推荐
相关产品推荐

