Python 3.x 如何在另一个字符串上应用正则表达式组匹配?

Python 3.x 如何在另一个字符串上应用正则表达式组匹配?,python-3.x,regex,re,Python 3.x,Regex,Re,使用Python 3,我试图将模式组从从一个字符串恢复的正则表达式替换为另一个字符串,例如: 使用以下正则表达式“([a-z]+).([a-z]{3})”,以及以下字符串:“image.jpg”,我想替换另一个字符串中的组,即“类型为\2的文件名为\1” 这将导致一个字符串为“您的jpg类型文件名为image” 使用re.search,并通过执行destination.replace('\{pos}',current)在.groups()上循环,但如果组中有9个以上的条目,则会中断。我希望有一个

使用Python 3,我试图将模式组从从一个字符串恢复的正则表达式替换为另一个字符串,例如:

使用以下正则表达式“([a-z]+).([a-z]{3})”,以及以下字符串:“image.jpg”,我想替换另一个字符串中的组,即“类型为\2的文件名为\1”

这将导致一个字符串为“您的jpg类型文件名为image”

使用
re.search
,并通过执行
destination.replace('\{pos}',current)
.groups()
上循环,但如果组中有9个以上的条目,则会中断。我希望有一个更有效的方法来做到这一点


据我所知,
re.sub
应用于同一个字符串,这就是为什么我不能使用它。

为什么不完全避免正则表达式,并执行以下操作:

inputString = "testImage123.jpg"
filename, _, ext = inputString.rpartition(".")

result = f"Your file of type {ext} has the name {filename}."
# Your file of type jpg has the name testImage123.

反向引用的数量必须与正则表达式中捕获组的数量相匹配。你如何确定?如果下面的答案不适合你,请提供一个测试用例。好的,这是显而易见的!谢谢
#python3
import re
exp=r"([a-z]+).([a-z]{3})"
stri="image.jpg"
f= r"Your file of type \2 has the name \1."
result= re.sub(exp, f, stir)
print(result)
#output: "Your file of type jpg has the name image."