Python re.sub在一次调用中用不同的单词替换多个模式

Python re.sub在一次调用中用不同的单词替换多个模式,python,regex,Python,Regex,我有一个这种格式的文件名 remote_execute___jenkin%.java remtoe__plat_jenk.java 我想用一个替换所有出现的两个或三个, 我是这样做的 re.sub('_{2,3}','_',name) name = re.sub('_{2,3}','_',name) name = re.sub('\.java$','jav',name) 这将起作用,并将所有出现的两个或三个\u替换为单个\u。但是在相同的re.sub调用中,我需要用.jav替换.java

我有一个这种格式的文件名

remote_execute___jenkin%.java
remtoe__plat_jenk.java
我想用一个
替换所有出现的两个或三个
,

我是这样做的

re.sub('_{2,3}','_',name)
name = re.sub('_{2,3}','_',name)
name = re.sub('\.java$','jav',name)
这将起作用,并将所有出现的两个或三个
\u
替换为单个
\u
。但是在相同的
re.sub
调用中,我需要用
.jav
替换
.java

我这样做是为了匹配
.java
下划线

\.java$|_{2,3}
但是在替换
下划线
之后,如何在相同的
re.sub
调用中替换
.java
,而不使用另一个
re.sub

\.java$|_{2,3}
现在我是这样做的

re.sub('_{2,3}','_',name)
name = re.sub('_{2,3}','_',name)
name = re.sub('\.java$','jav',name)

我想在一个
re.sub
调用中执行上述操作嵌套
re.sub
将起作用

name = re.sub('_{2,3}','_',re.sub('\.java$','jav',name))

嵌套的
re.sub
将起作用

name = re.sub('_{2,3}','_',re.sub('\.java$','jav',name))

对于示例数据,您可以使用:

重新导入
name=“remote\u execute\u\u jenkin%.java”

打印(re.sub)(“”?=|)(?对于您可以使用的示例数据:

重新导入
name=“remote\u execute\u\u jenkin%.java”

打印(re.sub)(“(?=)|”)但这再次使用两个re.sub这应该有帮助,但这再次使用两个re.sub这应该有帮助