如何在Python中从字符串中剪切非字母数字的前缀和后缀?

时间:2019-03-20 16:58:03

标签: python regex string prefix suffix

如何从字符串的开头和结尾截去所有不是字母数字的字符?

例如:

print(clearText('%!_./123apple_42.juice_(./$)'))
# => '123apple_42.juice'

print(clearText('  %!_also remove.white_spaces(./$)   '))
# => 'also remove.white_spaces'

2 个答案:

答案 0 :(得分:3)

您可以使用以下模式:^[^a-zA-Z0-9]+|[^a-zA-Z0-9]+$

说明:

^[^a-zA-Z0-9]-匹配字符串开头的一个或多个非字母数字字符(感谢^

[^a-zA-Z0-9]$-在字符串末尾匹配一个或多个非字母数字字符(由于$

|表示交替,因此它与开头或结尾处的非字母数字字符串匹配

Demo

然后用空字符串替换匹配项就足够了。

答案 1 :(得分:2)

这个家伙抓住了字母数字字符之间的所有内容。

import re

def clearText(s):
    return re.search("[a-zA-Z0-9].*[a-zA-Z0-9]", s).group(0)

print(clearText("%!_./123apple_42.juice_(./$)"))