Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Python - wyrażenie regularne.
artuross
post
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 9
Dołączył: 30.12.2011

Ostrzeżenie: (0%)
-----


Witajcie, mam takie problem, korzystam z edytora Sublime Text 2, który jest właśnie napisany w Pythonie i chciałbym sobie szybko sformatować kod, ale nie wiem jak ominąć ciągi znaków.
Żeby Wam to zobrazować pokażę to na kodzie:

  1. $string1 = 'Jakiś string z przykładową kropką, którą nie powinna zostać sformatowana';
  2. $string2 = DATADIR.SITEMAP.EXT; // docelowo: DATADIR . SITEMAP . EXT
  3. $string3 = 'Kolejny string, tym razem ma kilka kropek. I kolejna. A to już ostatnia.';



Teraz chciałbym, aby kropki NIE ZNAJDUJĄCE się w stringach nie zostały sformatowane, a kropki poza stringami zostały zamienione na _._ (gdzie _ to spacja), w tym przypadku DATADIR.SITEMAP.EXT powinno zostać zamienione na DATADIR . SITEMAP . EXT, a reszta kropek nie ruszona.

Nie znam sposobu na zrobienie tego, chodzi mi tylko o idee w jaki sposób zaznaczyć, że COŚ ma zostać znalezione, ale tylko, gdy nie znajduje się pomiędzy czymś (w moim przypadku ZAWSZE będą to ' i '). Wszystkie moje pomysły na znalezienie tego już testowałem, niestety, chyba nawet nie zbliżyłem się do rozwiązania problemu.

Będę wdzięczny za jakiekolwiek podpowiedzi. Pozdrawiam,
artuross

PS Wiem, że to Hydepark, wiem, że może wydawać się głupie to, co próbuję osiagnąć, ale chciałbym to zautomatyzować troszkę, a przy okazji kod wszędzie wyglądałby tak samo, bo kropka to tylko jeden z wielu przykładów dla zastosowania tego wyrażenia.
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wyrażenia regularne są tu właściwie bezużyteczne. Musisz niejako stworzyć cały parser, który będzie wstanie określić co właśnie przetwarza (czy "." znajduje się w komentarzu, tekście czy może jest to element składni).
Go to the top of the page
+Quote Post
artuross
post
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 9
Dołączył: 30.12.2011

Ostrzeżenie: (0%)
-----


Korzystałeś z edytora i jesteś pewien? Gdy podaję, by wyszukał '.*?' zostają zaznaczone tylko stringi, a wartości pomiędzy nimi, które de facto też znajdują się pomiędzy ' i ' nie zostają zaznaczone.
Jeżeli mimo to nie da rady tak zrobić bez tworzenia parsera to dzięki za odpowiedź.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:52