Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.

Komentarze w wyrażeniach regularnych

13 grudnia 2009 | Klucze: it, Ogólne, programowanie, ruby, Techblog
7 komentarzy. trackback

Ostatnio pisałem o swoim punkcie widzenia na standard kodowania w Ruby. Jakoś dziwnie się to zbiegło z czasem, gdy jeden z project managerów w firmie mocno wziął sobie do serca pisanie dokumentacji. Zaowocowało to serią commitów z opisami typu: Comments, Comments fix. Jeden z impliksowych perlistów podesłał mi przykład jak to oni dokumentują swój kod. W przykładzie znalazłem coś co mi się strasznie spodobało: dokumentacje w wyrażeniu regularnym!

Ruby zapewnia wbudowaną obsługę dopasowania wyrażeń regularnych. W Ruby wyrażenia regularne są instancjami klasy Regexp. To co mnie szczególnie ostatnio zainteresowało to tryb Regexp::EXTEND, w którym to ignorowane są białe znaki i dopuszczone są komentarze. By Regexp pracował w tym trybie: regexp = Regexp.new('dopasowanie', Regexp::EXTENDED) regexp = /dopasowanie/x

Poniżej przykład zastosowania, prosty bo prosty ale ideę chyba prezentuje. Wyrażenie regularne sprawdzające poprawność adresu email (niezastanawiaj się drogi czytelniku nad skutecznością, ale nad formą wyrażenia). Kiedyś, ktoś napisał fajny "sprawdzacz" do wyrażeń regularnych w Ruby: rubular.com, ale dość słabo radzi on sobie z rozszerzonymi wyrażeniami. Na koniec polecam jeszcze zapoznać się z dokumentacją klasy MatchData

A teraz mała odskocznia, ale tylko mała. Ostantio kiedy szukaliśmy do Implix programisty Ruby napisałem o tym na blogu zamieszczając zdjęcie. Programistę znaleźliśmy, ale zdjęcie żyło własnym życiem ... Co prawda to miejsce jest już zajęte, ale tuż obok możesz siedzieć Ty. Bo właśnie szukamy programisty Ruby. Nie wymagamy doświadczenia. Chcemy tylko byś orientował się w temacie i znał trochę Ruby i Rails. Gwarantujemy, że dużo się nauczysz i napewno nie zaśniesz z nudów. Praca w Gdyni, blisko morza (300 metrów). Zapraszamy.


KOMENTARZE

13 grudnia 2009 | BTM |

niezastanawiaj się drogi czytelniku nad skutecznością, ale nad formą wyrażenia

Argh, a już miałem powiedzieć, że nie przepuści np. emaila z + w loginie ;-)

Przyznać rację muszę, że drugi wariant zapisu dużo bardziej czytelny. Regexpy są po prostu koszmarne czasami.

13 grudnia 2009 | Stanisław 'dozzie' Klekot |

Znaczy tego, no. Komentarze w regexpach uważam za zupełnie niepotrzebny
wodotrysk. Albo wyrażenie jest proste i komentarza nie wymaga, albo wyrażenie
jest zbyt skomplikowane żeby był sens je rozwijać dalej i powinno się
zastosować bardziej złożony parser.

14 grudnia 2009 | Seban |

A według mnie to nie jest niepotrzebna fanaberia. Czasem nawet regexp, który ma służyć do czegoś proste wcale nie jest prosty. Wtedy zwyczajnie trzeba go opisać w jakiś sposób. Prawie każde wyrażenie jest zbyt skomplikowane by je zrozumieć w locie. A parsery to inna bajka ...

14 grudnia 2009 | Stanisław 'dozzie' Klekot |

Właśnie. Nie jest prosty, znaczy należy go zamienić na parser.

03 marca 2010 | em |

A tego niedoświadczonego programisty szukacie może jeszcze? Na stronie implixu widzę ze ogłoszenie wciąż wisi, ale już trochę czasu minęło.

03 marca 2010 | Seban |

em napisz do mnie maila lub podeslij jakies CV jak jestes zainteresowany. sebastian.nowak(at)gmail.com

08 czerwca 2010 | perlisty |

[\w.-_]+
Ale rozwlekly zapis. Perlisci pisza:
[\w.-]+

A co do rad Klekota. Uzywamy parserow do wiekszych rzeczy. Ja jestem zdania, ze jesli da sie cos zrobic za pomoca standardowych technich (w tym wypadku wyrazen reg.) to nie ma sensu zwiekszac entropii kodu. Parser przydaje sie, jesli chcesz w trakcie analizy napisu wywolywac jakies akcje, a zwykle wyrazenie regularne tego nie potrzebuje. A komentarzy nigdy za wiele.