正则表达式删除非字母数字字符不起作用

时间:2019-03-16 13:10:06

标签: python regex

已将Pandas数据框的一列转换为列表。然后将列表中的所有元素都小写。现在只想在列表的元素中保留字母。我为此写了一个正则表达式。正则表达式不起作用。

df_smer_orig = pd.read_csv('sample.csv', engine='python')
df_smer = df_smer_orig['Item'].tolist()
df_smer = [x.lower() for x in df_smer] 

for x in df_smer:
    print(x)
    regex = re.compile('[^a-zA-Z]')
    regex.sub('', x)
    print(x)

print(df_smer)

显示正则表达式的代码的部分输出无效:

agarbathi / incense sticks
agarbathi / incense sticks
worcestershire sauce- 295ml
worcestershire sauce- 295ml

2 个答案:

答案 0 :(得分:1)

对吗?

text = re.sub(r'[^a-zA-Z]', '', text)

演示:http://tpcg.io/ZADE7f

答案 1 :(得分:1)

您的代码是正确的,但是您必须将结果分配回变量以获取所需的输出。

df_smer_orig = pd.read_csv('sample.csv', engine='python')
df_smer = df_smer_orig['Item'].tolist()
df_smer = [x.lower() for x in df_smer] 

for x in df_smer:
    print(x)
    regex = re.compile('[^a-zA-Z]')
    x = regex.sub('', x)
    print(x)

print(df_smer)