У меня есть текст, где цифры появляются всевозможными способами.
Например,
text = "hello23 the2e are 13 5.12apples *specially_x00123 named 31st"
Я хочу заменить все цифры на '#', за исключением цифр в специальном шаблоне, начиная с *, слова, подчеркивания, любого символа и числа, таких что * \ w + _ [az] \ d + (т.е. * specially_x00123).
Я пытался использовать синтаксис lookaround и группу без захвата , но не могу найти способ точно изменить это, как показано ниже
text_cleaned = "hello## the#e are ## #.##apples *specially_x00123 named ##st"
Я могу использовать шаблон, как показано ниже:
p1 = r'\d(?<!\*\w+_\w+)'
Тогда он жалуется вот так; «для просмотра требуется шаблон с фиксированной шириной»
Я пытался использовать группу без захвата:
p2 = r'(?:\*[a-z]+_\w+)\b|\d'
Вынимает специальный токен (* special_x000123) и все цифры. Я думаю, что это то, что я могу включить в решение, но я не могу найти как. Есть идеи?