任何人都可以解决正则表达式问题吗? 我需要删除所有外部空白,以保留字母之间的中间空间,并删除字符串末尾的数字和特殊字符。
输出必须类似于:
' Puerto Rico (#682) ' -> 'Puerto Rico'
'Cote d'Ivoire (#438)' -> 'Cote d'Ivoire'
我似乎无法保留撇号和字母之间的空格。
答案 0 :(得分:1)
您可以使用^
和$
锚来确保仅在字符串的开头和结尾删除空格和所有非字母:
import re
def clean_string(d):
return re.sub('^\s+|[^a-zA-Z]+$', '', d)
s = [' Puerto Rico (#682) ', "Cote d'Ivoire (#438)"]
print([clean_string(i) for i in s])
输出:
['Puerto Rico', "Cote d'Ivoire"]