python 4-3 如何调整字符串中文本格式re.sub(p,r’\1/\2’,str1)/re.sub(‘(?Pp),’\g’,str1)
解决方案:
使用正则表达式re.sub()方法做字符串替换,利用正则表达式的捕获组,
捕获的每个部分内容,在替换字符串中调整各个捕获组的顺序
需要将2017-01-22转换成01-22-2017
s = "2017-01-22"
print re.sub("(\d{4})-(\d{2})-(\d{2})",r"\2/\3/\1",s)
print re.sub("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})","\g<month>/\g<day>/\g<year>",s)
01/22/2017
01/22/2017
需要将book.txt 中的书籍价格都提高5%
cat book.txt
booka 23.99
bookb 12.59
bookc 19.99
f = open("book.txt").read()
def func(m):
price = m.group(2)
price = float(price) * 1.05
return "%s %.2f"%(m.group(1),price)
print re.sub("(\w+)\s+(\d+.?\d*)",func,f)