如何在Python中从字符串中删除特殊字符,如果字符串中包含除英文以外的脚本。

25 浏览
0 Comments

如何在Python中从字符串中删除特殊字符,如果字符串中包含除英文以外的脚本。

我有一个字符串,其中包含英文和阿拉伯文,现在我需要去除特殊字符。\n我知道有一个正则表达式的解决方案:\n

re.sub('[^A-Za-z0-9]+', '', mystring)

\n但是这个正则表达式也会从字符串中移除阿拉伯字母。

0
0 Comments

问题的原因是:字符串中包含非英文字符,需要将特殊字符从字符串中移除。

解决方法是使用正则表达式的re.sub()函数,并设置相应的标志位。如果字符串中没有下划线(_)这个特殊字符,可以使用以下代码:

import re
s = "#$&%NKGS&$_7نسیتلبskdjfh3%-"
result = re.sub('[^\w]+', '', s, flags=re.U)
print(result)

输出为:'NKGS023489_7نسیتلبskdjfh3'

如果字符串中含有下划线(_)这个特殊字符,可以使用以下代码:

import re
s = "#$&%NKGS&$_7نسیتلبskdjfh3%-"
result = re.sub('[^\w]+|_', '', s, flags=re.U)
print(result)

输出为:'NKGS0234897نسیتلبskdjfh3'

在Python 3中,也可以使用以下代码进行处理:

import re
s = "#$&%NKGS&$_7نسیتلبskdjfh3%-"
result = re.sub(r'[\W_]+', '', s)
print(result)

输出为:'NKGS0234897نسیتلبskdjfh3'

以上方法都能够实现从字符串中移除特殊字符的功能。

0