Python如何移除字符串中的'^'字符且保留空格?DataFrame处理遇阻
解决Python字符串中移除'^'符号的问题
你之前的正则表达式r'[^a-zA-z0-9\s]+'存在范围错误——A-z的ASCII字符区间里包含了^符号(Z的ASCII码是90,a是97,中间的94就是^),所以这个符号被归到了允许保留的列表里,自然不会被移除。
这里给你两种可行的解决方案:
方案1:修正正则,批量清理非字母/数字/空格的字符
如果你的需求是保留字母、数字和空格,移除其他所有特殊字符(包括^),把正则里的a-zA-z改成a-zA-Z即可,这样范围就严格限定在大写A-Z和小写a-z之间:
import re import pandas as pd def remove_special_characters(text, remove_digits=True): # 根据是否移除数字选择对应正则 pattern = r'[^a-zA-Z0-9\s]+' if not remove_digits else r'[^a-zA-Z\s]+' text = re.sub(pattern, '', text) return text df['review'] = df['review'].apply(remove_special_characters)
方案2:单独移除^符号
如果只需要移除^,其他特殊字符都保留,直接用字符串的replace方法更简单高效,不需要正则:
def remove_caret(text): return text.replace('^', '') df['review'] = df['review'].apply(remove_caret)
内容的提问来源于stack exchange,提问作者zerotsu
相关产品推荐
相关产品推荐

