⚖️ Старый и современный подход

⚡ Кратко

Используйте r"..." и модуль re вместо ручного перебора символов. Для простых задач выбирайте методы строк вместо regex.

Ручной поиск vs re

❌ Ручной перебор

text = "Price: 199 USD, tax: 20 USD"
numbers = []
current = ""
for ch in text:
    if ch.isdigit():
        current += ch
    else:
        if current:
            numbers.append(current)
            current = ""
if current:
    numbers.append(current)
print(numbers)

✅ Регулярное выражение

import re

numbers = re.findall(r"\d+", text)
print(numbers)

Методы строк vs regex

❌ Regex там, где достаточно строк

import re

if re.search(r"world", text):
    print("found")

clean = re.sub(r"\s+", " ", text)

✅ Встроенные методы

if "world" in text:
    print("found")

clean = " ".join(text.split())

Отсутствие raw string

❌ Без r

import re

# Надо удваивать каждый pattern = "\d+"
print(re.findall(pattern, "Age: 25"))

✅ С raw string

import re

pattern = r"\d+"
print(re.findall(pattern, "Age: 25"))

Простое разделение vs re.split

❌ Несколько вызовов replace

raw = "python, data / ML; AI"
for sep in ",/;":
    raw = raw.replace(sep, " ")
tags = [t.strip() for t in raw.split() if t.strip()]

re.split

import re

raw = "python, data / ML; AI"
tags = [t.strip() for t in re.split(r"[,/;\s]+", raw) if t.strip()]
Проверить по докуентации: современный Python рекомендует для читаемости и производительности предпочитать встроенные методы строк простым регулярным выражениям (см. String Methods).