在大小不同且匹配相似的字符串中查找精确匹配

2024-10-01 05:01:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须解析一个文件(我知道怎么做),但是,我需要在字符串中搜索特定的模式,这就是我有点困惑的地方

假设我们有以下字符串:

GEO1D1JXUQ2LSO

GOE22D2OKDLALKCDSI

EO212D0FM2KDLA

LAFD21D1FM2KDF3BLA

已知的字符串是前缀(GEO、GOE、EO、LAFD),前缀后是1、2或3个数字,然后是字母D,如示例所示

我事先有前缀,但仅此而已。如何搜索每个字符串并确定它属于哪个组

注意:字符串中也有一些我需要的信息(比如D后面的数字),但我只关注如何识别它是哪个组的一部分,这样我就可以获取该组的更多信息

我被卡住了,因为有一些前缀可以存在于前缀中,比如GEO中的EO


Tags: 文件字符串信息地方字母模式数字eo
1条回答
网友
1楼 · 发布于 2024-10-01 05:01:03

检查前缀的最简单方法就是string.startswith()

如果您的前缀是其他前缀的前缀(例如AOIOAOI),那么您只需要小心定义检查顺序,以便首先检查较长的前缀

或者,您可以使用正则表达式提取前缀和所需的其他信息。例如:

^([A-Z]*)[0-9]+D([0-9]+)

这将为您提供两个组捕获,第一个是前缀,第二个是D后面的数字。请参见此处的详细信息:https://regex101.com/r/GxSZSI/2

Python中的示例用法:

>>> import re
>>> s = 'GOE22D2OKDLALKCDSI'
>>> m = re.match('^([A-Z]*)[0-9]+D([0-9]+)', s)
>>> m.groups()
('GOE', '2')

相关问题 更多 >