我有以下示例字符串:
- FCF_VD_ID,
- [FCF_VD_Alert_L1, ..., FCF_VD_Alert_L8],
- FCF_VD_SyncID,
- [FCF_VRU_Alert_FCV, FCF_VRU_Alert_A ..., FCF_VRU_Alert_H],
- [COM_Cam_Frame_1, ..., COM_Cam_Frame_8]
我需要从这些字符串中提取一些特定的部分。具体地说,我需要每个字符串的核心名称,在上面的例子中,它是枚举数之前的所有内容。 作为一个枚举器,我将L1->;L8,FCV,A->;H、 1->;8.
作为输出,我需要获得两个字符串:
core, enum = re.match(regex, string)
例如:
FCF_Alert_L1 -> FCF_Alert, L1
FCF_SyncID -> FCF_Sync_ID, None
FCF_VRU_Alert_FCV -> FCF_VRU_Alert, FCV
不幸的是,我的regex^([A-Za-z_]+(ID)?)([A-Z]+\d+|[A-Z]+|\d+)?$
不起作用。
有人能指出这个正则表达式中的问题吗?
对于FCF_VD_ID_L1
,我收到了('FCF_VD_ID_L', None, '1')
,这完全不是我所需要的
看起来你在找这个正则表达式:
它匹配最少数量的单词字符(
\w+?
),后跟_
和L1-L8
、FCV
或A-H
的enum
部分,或1-8
范围内的数字注意:由于您使用的是
re.match
,因此开头不需要^
,因为re.match
将所有匹配项锚定到字符串的开头在python中:
输出:
相关问题 更多 >
编程相关推荐