Python 用于删除非字母数字字符的正则表达式无效

Python 用于删除非字母数字字符的正则表达式无效,python,regex,Python,Regex,已将数据帧的列转换为列表。然后将列表中的所有元素小写。现在,我们只希望在列表的元素中保留字母表。我为此写了一个正则表达式。正则表达式不起作用 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

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

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
是这样吗

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

演示:

是这样吗

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


演示:

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

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)

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

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)