У меня есть такая строка
s = '''int t; //variable t
t->a=0; //t->a does;; something
printf("\nEnter the Employee ID : ");
scanf("%d", ptrx->eid); //employee id ptrx->eid
printf("\nEnter the Employee Name : ");
scanf("%s", ptr->name);
return 0;'''
Я хочу заменить ->
this на .
в строке выше. Но эту замену не следует делать внутри комментариев. Комментарий - это строка, которая начинается с //
и заканчивается в конце строки.
Я пробовал использовать приведенный ниже код. Есть ли способ решить эту проблему с помощью одного регулярного выражения.
Код
import re
for line in s.split('\n'):
code = re.findall('^(?:(?!\/\/.+$).)*', line)
comment = re.findall('\/\/.+$', line)
print(''.join(code).replace('->', '.') + ''.join(comment))
Ожидаемый результат:
int t; //variable t
t.a=0; //t->a does;; something
printf("
Enter the Employee ID : ");
scanf("%d", ptrx.eid); //employee id ptrx->eid
printf("
Enter the Employee Name : ");
scanf("%s", ptr.name);
return 0;