import re regstr = """ ^(?!.*(贷款|借款|融资|采购|销售|建设|工程|制造|生产|养殖|捕捞|贸易|物流|运输|旅游|酒店|餐饮|房地产|个人消费)).*(海洋.{0,100}(协会|学会|商会|联盟|联合会|促进会|研究会|俱乐部|公益组织|基金会|社会组织|非营利组织|NGO)|(协会|学会|商会|联盟|联合会|促进会|研究会|俱乐部|公益组织|基金会|社会组织|非营利组织|NGO).{0,100}海洋) """ test_cases = [ "防腐材料", "海洋防污涂层", "船舶防腐", "职业:水产养殖人员 投向:内陆养殖 用途:养殖鲍鱼", "材料", "医疗防护服", "职业:艺术从业者;投向:环保投资;用途:海洋垃圾清理公益组织" ] pattern = re.compile(regstr, re.VERBOSE) for t in test_cases: print(f"{t!r}: {'✓' if pattern.match(t) else '✗'}") a = False b = False print(a == b) text = "职业:水产养殖人员 投向:内陆养殖 用途:其他海洋服务,老年人" # 匹配从“职业”开始,直到“投向”之前的所有内容,并将其替换为空字符串 result = re.sub(r'职业:.*?(?=投向)', '', text) print(result)