题目: 写一个函数,它接受一个字符串,做的事情和 strip()字符串方法一样。如果只传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。否则,函数第二个参数指定的字符将从该字符串中去除。
问题:
这一行 % (t, t)
是如何起作用的, 原理是如何?
import re
def re_strip(s, t=r'\s'):
t_format = r'^%s*|%s*$' % (t, t)
s_re = re.compile(t_format)
s = s_re.sub('',s)
return s
print(re_strip('aadasdfsaaa','a'))
print(re_strip(' dafsdfa sadfasd '))
1
ChrisFreeMan 2022-03-07 12:51:43 +08:00
这是字符串格式化,替换里面的%s ,其实现在已经没人这么写了都用 f 操作符字符串格式化了
|
2
CalmSea OP 懂了,感谢.
|
3
Vegetable 2022-03-07 13:04:18 +08:00
python 之前的字符串格式方法。现在没什么人用了
|
4
frostming 2022-03-08 18:36:19 +08:00
插句题外话,要用正则复制 strip()的行为需要把两个 %s 用 [ ] 包裹下
|