Mam słownik (np. Angielski - chorwacki). Może zawierać zdania i frazy. Tłumaczę plik formularza "english text" = "english text"
na formularz "english text" = "croatian text"
i za pomocą modułu python regex, aby to zrobić. regex używam wygląda następująco (podano zmienna oryginalny który to tekst w języku angielskim, które powinny być przetłumaczone:Dosłowne nawiasy z pythonem regex
regexString = '(?<= = ")'+original+'(?=")'
ten sposób I'am w stanie uchwycić dokładnie angielskiej tekstu wewnątrz cudzysłowów na po prawej stronie i zastąpić ją chorwacki pojawia się jednak problem, jeśli oryginalny tekst zawiera nawias wewnątrz Na przykład:..
original = 'This is a wonderland :)'
W tym przypadku błąd „niezrównoważony nawias” jest podniesiony Jeśli oryginalny będzie. być ha rd kodowane, mogę rozwiązać ten problem poprzez umieszczenie
original = 'This is a wonderland :\\)'
Jednakże istnieje cały plik pełne oryginalnych zmiennych *. *
Czy istnieje rozwiązanie tego problemu, oprócz zmiany zmiennej oryginalnej przez poprzedzanie wszystkich nawiasów za pomocą odwrotnego ukośnika?
@Tim Pietzcker, dlaczego ** ** podwójny backslash? – kruk
Należy odwrócić ukośnik odwrotny, ponieważ w przeciwnym razie może rozpocząć sekwencję specjalną, w zależności od znaku, który następuje po niej. Podczas gdy '\)' jest jednoznaczne (i będzie tłumaczone przez interpreter Pythona na '\\)' automatycznie), inne sekwencje, takie jak '\ n',' \ b', mają specjalne znaczenie. Dobrą praktyką jest uczynienie tego wyraźnym, podwajając ukośniki odwrotne lub używając ciągów stałych. –