TXT=‘293包装(S)x000D印头产品:KA02033-E844 A5:发票:FIT-2401-01 HS编码:84732:100针织面料HS编码:6006.2:2.00INV#:TSTEX0124-009(TC-240021:)机织斜纹织物HS 600600D编码:6505.00:.90针织面料HS 600600D印刷头物品:KA02033-E844 A5:发票:FIT-2401-01 HS编码:6006.2:100针织面料HS 6000021编码:6505.00:.90针织面料HS 600600D

容器DRYU9124108:13套装(S),自动车齿机--CYJ500-1000HS编码:84597010; """

我想在HS代码之前取GET字符串:数字*(不包括HS代码:一些数字) 例如:[‘293包装(S)x000D印刷头物品:KA02033-E844 A5:发票:FIT-2401-01’,‘针织面料’,‘机织斜纹布’,‘针织面料’,‘针织面料’,‘面料:P57101(T989,100%涤纶,纬度:H 152 cm)’,‘集装箱DRYU9124108:13包(S),自动车齿MACHINESD-CYJ500-1000’]

试试巨 Python 吧: 进口再

TXT=‘293包装(S)x000D印头产品:KA02033-E844 A5:发票:FIT-2401-01 HS编码:84732:100针织面料HS编码:6006.2:2.00INV#:TSTEX0124-009(TC-240021:)机织斜纹织物HS 600600D编码:6505.00:.90针织面料HS 600600D印刷头物品:KA02033-E844 A5:发票:FIT-2401-01 HS编码:6006.2:100针织面料HS 6000021编码:6505.00:.90针织面料HS 600600D

容器DRYU9124108:13套装(S),自动车齿机--CYJ500-1000HS编码:84597010;‘’

X=re.findall(r‘(.+?)(?:(?=hs编码:\S*\d*)|(?=hs.code:\S*\d*))’,txt,re.S|re.IGNORECASE)

打印(X)

结果:[‘293Package(S)x000D\n打印标题项:KA02033-E844A5:发票:FIT-240021-01’,‘HS编码:6006.2:2.00INV#:TSTEX0124-009(TC-2033:)机织斜纹CAP’,‘HS编码:6505.00:0.90 KK宽带:H 152 cm)HS编码:54075200_x000D_\n(*)PRO:IL:IMPORT-SHA@ZHL.CN USCI:913101141:32276439L(**)USCI:\n容器DRYU9124108:13包(S)"自动车齿机-CYJ500-1000"]

结果包括"HS代码:数字".

推荐答案

更通用的正则表达式是从非空格字符开始,并使用非贪婪的通配符进行匹配,直到遇到H.S. CODE : non-spaces的变体(其中点、CODE、冒号和空格都是可选的):

re.findall(r'(\S.*?)\s+H\.?S\b\.?(?:\s*CODE)?\s*:?\s*\S+', txt)

Regex101:https://regex101.com/r/uKNisV/1上的演示

Ideone上的演示:https://ideone.com/UcWvrl

请注意,除非INV#: non-spaces non-spaces是大小写特殊的,否则没有从INV#: TSTEX0124-009 (TC-240021:) WOVEN TWILL CAP中提取WOVEN TWILL CAP的合理方法.如果你愿意特例,那么你可以这样做:

(?:INV#:\s*\S+\s+\S+\s+)?(\S.*?)\s+H\.?S\b\.?(?:\s*CODE)?\s*:?\s*\S+

Regex101:https://regex101.com/r/uKNisV/2上的演示

Ideone上的演示:https://ideone.com/GkubmJ

Python相关问答推荐

按列分区,按另一列排序

如何获取TFIDF Transformer中的值?

如何在Polars中从列表中的所有 struct 中 Select 字段?

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

Python逻辑操作作为Pandas中的条件

如何在turtle中不使用write()来绘制填充字母(例如OEG)

Pandas Data Wrangling/Dataframe Assignment

Matplotlib中的字体权重

如何使用使用来自其他列的值的公式更新一个rabrame列?

如何使用OpenGL使球体遵循Python中的八样路径?

如何创建引用列表并分配值的Systemrame列

Numpyro AR(1)均值切换模型抽样不一致性

如何过滤组s最大和最小行使用`transform`'

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

SpaCy:Regex模式在基于规则的匹配器中不起作用

Seaborn散点图使用多个不同的标记而不是点

分解polars DataFrame列而不重复其他列值

文本溢出了Kivy的视区

高效地计算数字数组中三行上三个点之间的Angular

从`end_date`回溯,如何计算以极为单位的滚动统计量?