目标:实现strip()的正则表达式版本;
思路:regex.sub()方法,给定文本,将匹配到的所有子串替换为空字符串。
主要解决了一个问题:如何在regex对象中使用变量?
结论:已解决。共3种方法,见代码。
import re
def reStrip(text, chars=None):
if chars is None:
regex = re.compile(r'^\s*|\s*$')
else:
regex = re.compile(r'^[{}]*|[{}]*$'.format(chars, chars))
# regex = re.compile(r'^[%s]*|[%s]*$' % (chars, chars))
# regex = re.compile(r'^[' + chars + ']*|[' + chars + ']*$')
return regex.sub('', text)
print(reStrip(' ababc ab vb a', 'ab '))
运行结果如下:
c ab v