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

如何用正则表达式仅匹配字符串中对应VAT标识的11位数字

正则规则调整方案

你当前的正则仅校验了11位数字前后无其他数字的边界特征,无法区分同长度的VAT号和手机号,因此会返回两个结果,调整思路为绑定VAT的上下文关键词做匹配即可。

基础版正则(适配固定格式场景)

如果你的文本中VAT号的前缀固定为VAT number ,直接使用带正向后行断言的正则即可:

rgx = r"(?<=VAT number )\d{11}(?!\d)"

执行re.findall(rgx, a)会直接返回['12345678901'],完全符合需求。

兼容版正则(适配空格不固定场景)

如果VAT和number之间可能存在多个空格、制表符等空白字符,Python 3.7及以上版本支持有限长度的可变后行断言,可以使用以下正则:

# 限定前后空白字符长度不超过10,足够覆盖常规格式异常场景
rgx = r"(?<=VAT\s{1,10}number\s{1,10})\d{11}(?!\d)"

核心逻辑说明:通过正向后行断言限定匹配的11位数字必须紧跟VAT相关标识,从业务特征层面区分开VAT号和手机号,避免误匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:36:06