如何用正则表达式提取字符串纯字母部分,排除括号内容与字母数字组合?
提取纯字母单词并排除括号内容与字母数字组合
解决步骤
移除括号及内部内容
先用正则替换掉所有括号及其内部的字符,避免无关内容干扰后续提取:df['cleaned'] = df['description'].str.replace(r'\([^)]*\)', '', regex=True)提取纯字母独立单词
使用带负向断言的正则,匹配仅由字母组成、且后面不紧跟数字的完整单词,以此排除"AUS52"这类字母数字组合中的字母部分:df['desc'] = df['cleaned'].str.findall(r'\b[a-zA-Z]+(?!\d)\b').apply(' '.join)
完整代码
df['desc'] = df['description'].str.replace(r'\([^)]*\)', '', regex=True).str.findall(r'\b[a-zA-Z]+(?!\d)\b').apply(' '.join)
效果验证
针对示例字符串 "AERONAUTICAL MOBILE (OR) AUS52 AUS57 AUS58 AUS101",执行代码后,df['desc'] 的结果为 "AERONAUTICAL MOBILE"。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

