Wpis z mikrobloga

@Vosemite: wiem, że to mem ale. Ostatnio dowiedziałem się od seniora, że nie powinienem nigdy używać regex w kodzie produkcyjnym. Nie jest wydajny ani łatwy do zrozumienia, przerobienia oraz do testowania.
  • Odpowiedz
@Vosemite: może nie programowanie, ale przy openwrt sam kilka tutoriali zrobiłem, a po latach sam z nich korzystałem bo nic już z tego nie pamiętałem i uczyć od nowa się nie chce xD
  • Odpowiedz
@mdlejtecole: Proste regexy są łatwiejsze do zrozumienia niż kod, np. regex sprawdzający czy ciąg znaków zawiera cyfry. Testowanie regexow niczym się nie różni od testowania zwykłych funkcji. Wydajnościowo tez mogą wyjść lepiej niż zwykła funkcja. Więc nigdy nie mów nigdy.
  • Odpowiedz
@Vosemite: Akurat poprawny regex na emaile to jest coś czego nie da się zapamiętać, bo mimo, że problem wydaje się trywialny to w rzeczywistości taki nie jest. Kto musiał walidować email'e ten się nie śmieje :D Zakładając że chcemy być zgodni z RFC to jest coś takiego:

(?:[a-z0-9!#$%&'*+/=?^_{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
PS. Swego czasu widziałem w kodzie sporej aplikacji test if @ in email na walidacje adresu email :)
  • Odpowiedz
Regexy są fajne :) oszczedzaja mnostwo pracy z plikami tekstowymi (JSONy, HTMLe, configi) w Atom-ie.
Dzieki wam sprawdzilem jak jest walidowany input type=„email” i zalezy od przegladarki. Ale nowoscia dla mnie jest input pattern!
  • Odpowiedz
@boryspo: wydaje mi się, że ten regexp dopuszcza + w części lokalnej. Poza tym komentarze po plusie formalnie nie są ujęte w RFC. RFC po prostu dopuszcza znak + przed @ i ten regexp go też dopuszcza. matchowanie komentarza musisz sobie sam doimplementowac bo to już nie jest częścią standardu tylko inwencją własną hostingów mailowych. PS. Parsery też korzystają z regexpow :)
  • Odpowiedz