Используйте функцию sub
из модуля регулярных выражений python, re
:
from re import sub
text = '$some_name,other stuff,whatever'
result = sub(r'\$(\w*)', r'@@@\1@@@', text)
print(result)
Дает:
@@@some_name@@@,other stuff,whatever
Регулярное выражение \$(\w*)
соответствует группе, сначала \w
соответствует любому буквенно-цифровому символу или подчеркиванию, а *
означает кратное. На эту группу можно ссылаться как \1
. Затем мы строим замену как @@@\1@@@
, где \1
заменяется соответствующими символами.
Если вы хотите применить его ко всему файлу, вы можете отредактировать файл на месте, используя fileinput
модуль:
from fileinput import input
for line in input(['file.sql'], inplace=True):
print(sub(r'\$(\w*)', r'@@@\1@@@', line)