如何用Excel公式提取字符串中长度大于5位的数字?
提取字符串中长度大于5位的连续数字
完全可以实现,核心思路是利用正则表达式匹配连续6位及以上的数字——因为日期相关的数字都是短位且带分隔符(比如02-22、02/2023),不会形成连续的长数字串,刚好和目标数字区分开。
核心正则表达式
使用以下正则即可精准匹配:
\b\d{6,}\b
\b:单词边界,确保匹配的是独立的数字串,不会误抓长文本中的数字片段\d{6,}:匹配6位及以上的连续阿拉伯数字(满足你"长度大于5位"的要求)\b:结尾的单词边界,避免数字后紧跟其他字符的情况
示例验证
针对你给出的三个案例:
- 输入:
xx company holding - 96923432 -02-22→ 匹配结果:96923432 - 输入:
yy Company (HOLDINGS) LTD - 131002204 - 02/2023→ 匹配结果:131002204 - 输入:
ab HOLDINGS LIMITED / 115472907 / Feb-23→ 匹配结果:115472907
常用工具中的实现
Excel(365及以上版本)
用REGEXEXTRACT函数直接提取:
=REGEXEXTRACT(A1, "\b\d{6,}\b")
如果需要处理无匹配的异常情况,可搭配IFERROR:
=IFERROR(REGEXEXTRACT(A1, "\b\d{6,}\b"), "无符合条件的数字")
Python
借助re模块快速提取:
import re def get_target_number(text): match_result = re.search(r'\b\d{6,}\b', text) return match_result.group() if match_result else None # 测试你的示例数据 test_cases = [ "xx company holding - 96923432 -02-22", "yy Company (HOLDINGS) LTD - 131002204 - 02/2023", "ab HOLDINGS LIMITED / 115472907 / Feb-23" ] for case in test_cases: print(get_target_number(case))
内容的提问来源于stack exchange,提问作者Mike Dray
相关产品推荐
相关产品推荐

