Python 正则表达式在特定字符前面移动子字符串

Python 正则表达式在特定字符前面移动子字符串,python,regex,string,Python,Regex,String,嗨,如果可能的话,我正在尝试使用正则表达式移动这个字符串中的撇号 string=“R8 R16 R8 E'4 G'4.G16 R8.C2 R16 A4 D4 R2 D'16 B8 R16 C4 R8.E'8 C8 C'16 C'4” 所以输出是这样的 “R8 R16 R8 E4'G4。'G16 R8.C2 R16 A4 D4 R2 D16'B8 R16 C4 R8.E8'C8 C16'C4'”将此理解为“将撇号后跟一个或多个非空格字符替换为这些非空格字符,然后替换撇号。” 到目前为止,你试过什么

嗨,如果可能的话,我正在尝试使用正则表达式移动这个字符串中的撇号

string=“R8 R16 R8 E'4 G'4.G16 R8.C2 R16 A4 D4 R2 D'16 B8 R16 C4 R8.E'8 C8 C'16 C'4”

所以输出是这样的

“R8 R16 R8 E4'G4。'G16 R8.C2 R16 A4 D4 R2 D16'B8 R16 C4 R8.E8'C8 C16'C4'”

将此理解为“将撇号后跟一个或多个非空格字符替换为这些非空格字符,然后替换撇号。”


到目前为止,你试过什么了吗?我使用了以下答案中的代码:r.sub(r“(\S+),“r”\1“,“R8 R16 R8 E'4g'4.G16 R8.C2 R16 A4 D4 R2 D'16 B8 R16 C4 R8 C'16 C'4”),“R8 R16 R8 E4 E4'G4.”G16 R8.C2 R16 A4 r4 r4 r4 r4 R2 D16'B8 R16 r6 C8 r6 R8.E8 C16 c6 C4'C4”但现在我试图在有多个撇号的情况下修改它,例如“A'4B'2C'4”,我考虑使用|运算符,因为我只需要它最多两个撇号@kineticI明白了,我只是第二次运行代码循环可能会更有效@kinetic。
>>> re.sub(r"'(\S+)", r"\1'", " R8 R16 R8 E'4 G'4. G16 R8. C2 R16 A4 D4 R2 D'16 B8 R16 C4 R8. E'8 C8 C'16 C'4 ")
" R8 R16 R8 E4' G4.' G16 R8. C2 R16 A4 D4 R2 D16' B8 R16 C4 R8. E8' C8 C16' C4' "