如何使用正则表达式提取段落中的数据

问题描述

客户参考编号 N139211508474572 输入日期 05/19/2021 额外信息 NEFT IN UTR 来自 S S 经销商 N139211508474 572TXN 参考编号 23621001323

我如何提取供应商公司名称,如 SS disTRIBUTOR,在这个 FROM 是我拥有的多个数据中的常量,我做了正则表达式代码提取客户参考号(?

客户参考编号不是固定的,它会有数字和字母混合或只有数字。

解决方法

假设供应商公司名称位于关键字 FROM 和客户参考编号之间,请您尝试:

Customer Reference (.*).* FROM (.*) \1

Group2 获取供应商公司名称 S S DISTRIBUTOR

Demo

,

您没有指定实际使用的语言,正如 @some-programmer-dude 提到的那样,正则表达式不一定是在字符串中搜索的最佳解决方案。

您标记了 python,因此假设您正在使用它,您可以考虑使用 splitindex 来获取 FROM 之后和 {{ 之前的 2 个词的任何内容1}}:

REF

这给出:

s = "Customer Reference N139211508474572 Entry Date 05/19/2021 Extra Information NEFT IN UTR FROM S S DISTRIBUTOR N139211508474 572TXN REF NO 23621001323"
# Convert all to UPPER case first
s = s.upper()
# Clean unnecessary whitespaces first just in case
s = " ".join(s.split())
# Get all text after FROM
s = s.split("FROM")[1]
# Get all text which are 2 words before REF
index_of_REF = s.split().index("REF")
s = " ".join(s.split()[:index_of_REF-2])
print(s)