Python中如何移除DataFrame字符串内的特定GOST格式内容?
问题分析与解决
你的正则表达式未完全匹配GOST编号的完整格式,导致部分内容残留。原正则中\d+(?:-\d+)*仅能匹配纯数字+可选横杠数字的结构,但GOST编号存在2.114-2016这类带点分隔的数字组合,这部分未被纳入匹配范围,因此只移除了编号的前半段,留下.114-2016这类剩余内容。
修正后的代码
将匹配GOST编号的部分调整为\d+(?:[.-]\d+)*,同时支持点和横杠分隔的数字结构:
import pandas as pd import re # Sample DataFrame data = {'description': ["п. 5.6.2 ГОСТ 2.114-2016", "п. 4.1 ГОСТ 2.102-2013", "п.5 ГОСТ Р 51672-2000"]} df = pd.DataFrame(data) # 修正后的正则模式 pattern = r'п\.\s*\d+(?:\.\d+)*\s*ГОСТ(?:\s*Р)?\s*\d+(?:[.-]\d+)*' # 移除匹配内容并清理残留空白 df['description'] = df['description'].apply(lambda x: re.sub(pattern, '', x).strip()) print(df)
运行结果
description 0 1 2
额外添加.strip()是为了清除替换后可能残留的空白字符,让结果更整洁。
内容的提问来源于stack exchange,提问作者user24958090
相关产品推荐
相关产品推荐

