原内容

# 正则表达式:
        # (?i)表示接下来的匹配将不区分大小写
        # .*表示匹配任意字符(除了换行符)零次或多次
        # (.*)保存捕获的结果,即保存匹配到-h.*之前的全部内容
        # 将字符串元素中(-小写字母)替换为空字符
        
        self.df_投料['倒卷前卷号'] = self.df_投料['卷号(箱号)'].str.replace(
            pat=r'(?i)(.*)-h.*',
            repl=r'\1',
            regex=True
        ).apply(
            lambda x: re.sub(r'-[a-z]+', '', x)
        )

修改后

df_test['test'] = df_test['卷号(箱号)'].str.replace(
    pat=r'(.*)-H.*',
    repl=r'\1',
    regex=True
).apply(
    lambda x: re.sub(r'-\d?[a-z].*', '', x)
)