我有以下例子:
Tortillas Bolsa 2a 1kg 4118
Tortillinas 50p 1 31Kg TAB TR 46113
Bollos BK 4in 36p 1635g SL 131
Super Pan Bco Ajonjoli 680g SP WON 100
Pan Blanco Bimbo Rendidor 567g BIM 49973
Gansito ME 5p 250g MTA MLA 49860
在这里,我想保留数字之前的所有内容,但我也不想要两个大写字母的单词示例:ME, BK
。我在用^((\D*).*?) [^A-Z]{2,3}
预期结果应该是
Tortillas Bolsa
Tortillinas
Bollos
Super Pan Bco Ajonjoli
Pan Blanco Bimbo Rendidor
Gansito
在我使用的regex中,我仍然得到两个大写字母单词Bollos BK
和Gansito ME
使用lookahead(解释如下)预编译regex模式,并在列表中使用
regex.match
:这里,
data
是字符串列表。你知道吗细节
如果任何字符串不包含您要查找的模式,列表理解将出错(带有AttributeError),因为在该实例中
re.match
返回None
。然后可以使用循环并在提取匹配部分之前测试re.match
的值。你知道吗或者,如果不匹配时需要占位符
None
:我的2美分
https://regex101.com/r/7xD7DS/1/
您可以使用前瞻功能:
相关问题 更多 >
编程相关推荐