如何仅在字符串的开头/结尾替换非字母数字的字符?

Dav*_*ave 1 python regex python-3.x

我正在使用Python 3.7。我有以下替换单词中的非字母数字字符(将函数应用于字符串数组)的方法...

words = map(lambda x: re.sub(r'\W+', '', x), long_words)
Run Code Online (Sandbox Code Playgroud)

我将如何修改上述内容,以便仅在单词的开头和结尾替换字母数字字符?也就是说,数组中的单词看起来像

($abc-fff%%-)
Run Code Online (Sandbox Code Playgroud)

会成为

 abc-fff
Run Code Online (Sandbox Code Playgroud)

现在,它变成了

 abcfff
Run Code Online (Sandbox Code Playgroud)

MrG*_*eek 5

使用^$匹配字符串的开头/结尾:

print(re.sub(r'^\W+|\W+$', '', '($abc-fff%%-)'))
Run Code Online (Sandbox Code Playgroud)

输出:

abc-fff
Run Code Online (Sandbox Code Playgroud)