Python :strip()方法的正则表达式余运算判断传参

2022-03-07 12:45:52 +08:00
 CalmSea

题目: 写一个函数,它接受一个字符串,做的事情和 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  '))

2356 次点击
所在节点    Python
4 条回复
ChrisFreeMan
2022-03-07 12:51:43 +08:00
这是字符串格式化,替换里面的%s ,其实现在已经没人这么写了都用 f 操作符字符串格式化了
CalmSea
2022-03-07 13:01:53 +08:00
懂了,感谢.
Vegetable
2022-03-07 13:04:18 +08:00
python 之前的字符串格式方法。现在没什么人用了
frostming
2022-03-08 18:36:19 +08:00
插句题外话,要用正则复制 strip()的行为需要把两个 %s 用 [ ] 包裹下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838577

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX