请教Python正则表达式排除特定单词, 以特定单词结尾的问题

s=’电视机madie美的 HZ58M89 ppt智能电视, tongshuai统帅 tm58GT66 max智能电视,
kangjia康佳LB58G3 Pro 58英寸4K液晶电视机’

请教老师, 以上是3个电器型号, 我想只提取其中的3个型号, HZ58M89 ; tm58GT66 max ; LB58G3 Pro
型号是数字,英文,一些符号组合而成, 一般4个字符以上, 型号多数是连续的, 有2种例外情况, 后面跟了1个空格和特定的单词: 空格pro, 空格max, 也是型号一部分, 但是单词ppt就不是型号一部分.
re.findall(r”[()()0-9a-zA-Z/@+-]{4,}”,s,flags=re.IGNORECASE) 我用这个表达式, 会得到多余的, 和不含pro, max

我想排除掉固定的单词 madie, tongshuai, kangjia , 匹配进固定的单词, 空格pro, 空格max, 排除ppt不匹配, 想得到如下结果, 该怎么写正则表达式, 谢谢老师
想得到的结果: [‘HZ58M89’, ‘tm58GT66 max’, ‘LB58G3 Pro’]

讨论数量: 1
Jason990420

I don't have a good answer for it here.

import re

s = (
    '电视机 '
    'madie 美的 HZ58M89 ppt 智能电视,'
    'tongshuai 统帅 tm58GT66 max 智能电视,'
    'kangjia 康佳 LB58G3 Pro 58 英寸 4K 液晶电视机'
)

result = [item[0] for item in re.findall(r'([a-zA-Z]+\d[a-zA-Z0-9]*((?= ppt)| [a-zA-Z09]*))', s)]

# ['HZ58M89', 'tm58GT66 max', 'LB58G3 Pro']
1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!