在搜索和替换中使用名称组

时间:2019-05-17 15:07:41

标签: python regex

试图了解Python re.replace,我试图通过索引或名称来切换组,但是在使用re进行操作时遇到了问题。

让我们说:     行= '23 24“     #我想得到'242 231'

nline = re.sub(r"(\d+) (\d+)", r"\2 \1", line)
#This will result '24 23'

但是如果我在索引后面添加数字-我将获得无效的索引:     nline = re.sub(r“(\ d +)(\ d +)”,r“ \ 22 \ 11”,行)

我尝试使用名称组-但未能使其起作用:     nline = re.sub(r“(?P \ d +)(?P \ d +)”,r“ \ s2 \ f1”,line)

line = '23 24"
#Trial#1
nline = re.sub(r"(\d+) (\d+)", r"\22 \11", line)
#Trial #2
nline = re.sub(r"(?P<f>\d+) (?P<s>\d+)", r"\s2 \f1", line)

我想知道如何替换后跟另一个数字的组索引

以及如何在后面的引用中使用组名

1 个答案:

答案 0 :(得分:3)

尝试以下替代语法:

re.sub(r"(\d+) (\d+)", r"\g<2>2 \g<1>1", "23 24")
  

更多内容:https://docs.python.org/3.7/library/re.html#re.sub