import re regstr = """ ^(?!.*(服装|纺织|食品|农业|医疗)).*(海洋.{0,6}(防护|防腐|防污|防附着|防渗透)|防护.{0,6}海洋|防腐.{0,6}(材料|涂料)|防污.{0,6}(材料|涂层)|船舶.{0,3}(防腐|防污)|海工.{0,3}(材料|防护)) """ test_cases = [ "防腐材料", "海洋防污涂层", "船舶防腐", "职业:个体;投向:船体防腐;用途:海洋防污涂层", "材料", "医疗防护服", ] pattern = re.compile(regstr, re.VERBOSE) for t in test_cases: print(f"{t!r}: {'✓' if pattern.match(t) else '✗'}")