正则表达式字符串格式

时间:2018-10-26 16:43:17

标签: python regex python-3.x

任何人都可以解决正则表达式问题吗? 我需要删除所有外部空白,以保留字母之间的中间空间,并删除字符串末尾的数字和特殊字符。

输出必须类似于:

' Puerto Rico (#682) ' -> 'Puerto Rico'

'Cote d'Ivoire (#438)' -> 'Cote d'Ivoire'

我似乎无法保留撇号和字母之间的空格。

1 个答案:

答案 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"]