2016-07-12 4 views
0

Привет Я пытаюсь переместить апострофы в этой строке, используя регулярные выражения, если это возможно.Регулярные выражения, перемещающие подстроки перед определенным символом

строка = "R8 R16 R8 E'4 G'4. G16 R8. С2 R16 А4 D4 R2 Д 16 В8 R16 C4-R8. E'8 С8 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' "

+0

Вы что-нибудь пробовали? – Kinetic

+0

Я использовал этот код из ответа, приведенного 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' ", но теперь я пытаюсь изменить его для ситуаций с более чем одним апострофом, например« A''4 b'2 C » 4 " –

+0

Im думает об использовании | потому что мне нужно только до двух апостроф. @kinetic –

ответ

0

Прочитайте это как« Заменить апостроф, за которым следуют один или несколько непространственных символов с этими непространственными символами и то апостроф ».

>>> 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' " 
Смежные вопросы