У меня есть функция с параметром str, предназначенная для регулярных выражений, однако всякий раз, когда я передаю регулярное выражение этой функции, она изменяет форматирование этой строки, добавляя дополнительные escape-символы, которые нарушают выражение.
Я попытался отправить обе строки с r перед строкой (r'[a-zA-Z]+ \(?(?:\d ?)+\)?'
) и без с тем же результатом.
Придется ли мне вручную удалять дополнительные escape-символы внутри функции или есть лучший способ?
Вот пример:
>>> def function(regex=r''): # needs to be a kwarg for the actual implementation
... return regex
...
>>> function("r'[a-zA-Z]+ \(?(?:\d ?)+\)?'")
"r'[a-zA-Z]+ \\(?(?:\\d ?)+\\)?'"
Согласно отладчику pycharm, фактическое значение еще хуже, так как оно добавляет дополнительные вещи после 'r': 'r\\'[a-zA-Z]+ \\(?(?:\\d ?)+\\)?\\'
Я ожидал, что результирующая строка будет r'[a-zA-Z]+ \(?(?:\d ?)+\)?'
, без добавленных escape-символов / обратной косой черты, которые в итоге создадут плохой шаблон.