如何从字符串的开头和结尾截去所有不是字母数字的字符?
例如:
print(clearText('%!_./123apple_42.juice_(./$)'))
# => '123apple_42.juice'
print(clearText(' %!_also remove.white_spaces(./$) '))
# => 'also remove.white_spaces'
答案 0 :(得分:3)
您可以使用以下模式:^[^a-zA-Z0-9]+|[^a-zA-Z0-9]+$
说明:
^[^a-zA-Z0-9]
-匹配字符串开头的一个或多个非字母数字字符(感谢^
)
[^a-zA-Z0-9]$
-在字符串末尾匹配一个或多个非字母数字字符(由于$
)
|
表示交替,因此它与开头或结尾处的非字母数字字符串匹配
然后用空字符串替换匹配项就足够了。
答案 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_(./$)"))