我有一根这样的绳子
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;'''
我想用上面字符串中的.
替换->
。但这种替换不应该在Comments内部进行。注释是一个以//
开头并在行尾终止的字符串
我试过下面的代码。有没有办法用一个正则表达式来解决这个问题
代码
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;
使用允许可变长度查找的regex库可以实现以下功能
相关问题 更多 >
编程相关推荐