使用Python正则表达式切换单词的顺序

时间:2017-08-04 23:53:32

标签: python regex

我发现此代码将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")

另外,我对非正则表达式解决方案不感兴趣。我可以使用其他方法切换字符串,我只是对学习正则表达式感兴趣。

1 个答案:

答案 0 :(得分:2)

您需要捕获要在三个单独的组中切换的单词(在您的情况下,您只有一个捕获组);此处\1\2\3是按顺序引用捕获的组(括号内)的后引用,即\1 - hey\2 - you,{{1} };通过在替换中重新排序这些后向引用,单词在结果中重新排序:

\3 - man