如何用Python正则提取空格与符号'>'之间的字符串
Python正则提取指定片段的实现方法
适用正则表达式
匹配你给出的示例场景可以直接用这个正则:r'[A-Z]+<\d+:\d+'
各部分匹配逻辑:
[A-Z]+:匹配1个及以上连续的大写英文字母,对应CAR、BIKE、CAKE这类前缀<:匹配字面量左尖括号\d+:\d+:匹配「数字+冒号+数字」的后缀格式
完整Python示例代码
import re # 待处理的两条字符串 str1 = "[impro:0,grp:00,time:0xac,magic:0x00ac] CAR<7:5>|BIKE<4:0>,orig:0x8c,new:0x97" str2 = "[impro:0,grp:00,time:0xbc,magic:0x00bc] CAKE<4:0>,orig:0x0d,new:0x17" # 编译正则提升匹配效率 pattern = re.compile(r'[A-Z]+<\d+:\d+') # 提取结果 result1 = pattern.findall(str1) result2 = pattern.findall(str2) print(result1) # 输出:['CAR<7:5', 'BIKE<4:0'] print(result2) # 输出:['CAKE<4:0']
如果你需要更严格的匹配规则,比如限定只匹配方括号结束后的内容,可以使用带环视的正则:r'(?<=\]\s)[A-Z]+<\d+:\d+',该规则会要求匹配内容的前缀必须是] (方括号加空格),避免字符串其他位置出现符合格式的内容被误匹配。
内容的提问来源于stack exchange,提问作者Zadmain
相关产品推荐
相关产品推荐

