我发现此代码将YYYY-MM-DD切换为DD-MM-YYYY
b = re.sub(r'(\d{4})-(\d{1,2})-(\d{1,2})', '\\3-\\2-\\1', "2004-05-16")
所以我试图转换字符串'嘿,你是男人'嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿但不能这样做。我能够将字符串分组为:
b = re.findall(r'(\w+)', 'hey you man')
但是当我执行以下操作时出现错误:
b = re.sub(r'(\w+)','\\3\\2\\1',"hey you man")
另外,我对非正则表达式解决方案不感兴趣。我可以使用其他方法切换字符串,我只是对学习正则表达式感兴趣。
答案 0 :(得分:2)
您需要捕获要在三个单独的组中切换的单词(在您的情况下,您只有一个捕获组);此处\1
,\2
,\3
是按顺序引用捕获的组(括号内)的后引用,即\1 - hey
,\2 - you
,{{1} };通过在替换中重新排序这些后向引用,单词在结果中重新排序:
\3 - man