86851


文字列を特定の条件に当てはまった場合のみ置換したいのですが、うまく出来ず困っております。

文字列の例  
a1 = "Extension=1200,Type=567,Port=S123,Name= **Suzuki, Taro**
,Coverage_Path_1=,Coverage_Path_2="  
b1 = "Extension=3089,Type=123,Port=S432,Name= **OPS_Temp**
,Coverage_Path_1=,Coverage_Path_2="

置換条件  
[Name]から[,Coverage_Path_1]まで「,」がある場合は「,」から「_」に変換したい

例  
条件合致：置換  
a1=
"Extension=1200,Type=567,Port=S123,Name=Suzuki_Taro,Coverage_Path_1=,Coverage_Path_2="  
条件合致しない：置換しないでそのまま出力  
b1 =
"Extension=3089,Type=123,Port=S432,Name=OPS_Temp,Coverage_Path_1=,Coverage_Path_2="

試したこと  
正規表現で条件の判別をできるところまで完成（？）  
置換する処理でどうすればよいの？というところでつまずいてしまっております。

pattern =r"\w*,+\s\w*"

for l in (a1, b1):  
if re.search(pattern, l):  
print(re.findall(pattern, l))

初歩的な質問ばかりで申し訳ございません。（そもそも方向性が間違っていたらご指摘頂けると幸いです）


CC BY-SA 4.0
2022-03-16T03:49:22.220
86849
2022-03-16T04:13:28.663
2022-03-16T03:54:40.527
51133
51133
question
python 正規表現
正規表現に合致した特定の文字のみを置換したい

[code]

    import re
    
    a1 = "Extension=1200,Type=567,Port=S123,Name=Suzuki, Taro,Coverage_Path_1=,Coverage_Path_2="
    b1 = "Extension=3089,Type=123,Port=S432,Name=OPS_Temp,Coverage_Path_1=,Coverage_Path_2="
    
    print(re.sub(r'(Name.*?)(,+\s)(.*?,Coverage_Path_1)', r'\1_\3', a1))
    print(re.sub(r'(Name.*?)(,+\s)(.*?,Coverage_Path_1)', r'\1_\3', b1))
    
    #
    Extension=1200,Type=567,Port=S123,Name=Suzuki_Taro,Coverage_Path_1=,Coverage_Path_2=
    Extension=3089,Type=123,Port=S432,Name=OPS_Temp,Coverage_Path_1=,Coverage_Path_2=
    
[/code]


CC BY-SA 4.0
2022-03-16T04:13:28.663
86851
2022-03-16T04:13:28.663
47127
86849
answer