30 Przydatne fragmenty kodu Regex dla programistów internetowych
Wyrażenia regularne są potężnym narzędziem, które powinno znajdować się w pasku narzędzi każdego programisty. Mogą być dopasowane do ciągu znaków opartych na bardzo złożonych parametrach, co pozwala zaoszczędzić dużo czasu przy tworzeniu dynamicznych stron internetowych.
Twórcy stron internetowych stoją przed różnymi zadaniami niż programiści, ale wiele z tych samych podstaw kodu pozostaje. Wyrażenia regularne (lub regex) mieć stroma początkowa krzywa uczenia się, ale mogą być niezwykle potężny, gdy jest używany prawidłowo.
Najtrudniejszą częścią jest nauczenie się składni i nauczenie się pisania własnego kodu regex od podstaw. Aby zaoszczędzić czas, zorganizowałem 30 różnych fragmentów kodu wyrażeń regularnych, które można włączyć do projektów rozwojowych. A ponieważ wyrażenie regularne nie jest ograniczone do jednego języka, możesz zastosować te fragmenty do wszystkiego JavaScript do PHP lub Pyton.
1. Siła hasła
^ (? =. * [AZ]. * [AZ]) (? =. * [! @ # $ & *]) (? =. * [0-9]. * [0-9]) (? = . * [az]. * [az]. * [az]). 8 $
Sprawdzanie siły hasła jest często subiektywne, więc nie ma absolutnie poprawnej odpowiedzi. Ale czuję, że ten fragment regexu jest świetnym punktem wyjścia, jeśli nie chcesz pisać własnego sprawdzania siły haseł od podstaw. (Źródło)
2. Szesnastkowy kolor
# ([a-fA-F] | [0-9]) 3, 6
Dziedzina tworzenia stron internetowych jest wszechobecna dzięki szesnastkowym kodom kolorów. Ten fragment wyrażeń regularnych może być użyty do ściągania dopasowań kodu szesnastkowego z dowolnego ciągu znaków w dowolnym celu. (Źródło)
3. Sprawdź poprawność adresu e-mail
/[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]2,4/igm
Jednym z najczęstszych zadań programisty jest sprawdzenie, czy łańcuch jest sformatowany w stylu adresu e-mail. Istnieje wiele różnych wariantów wykonania tego zadania, więc ten link SitePoint oferuje dwa oddzielne fragmenty kodu do sprawdzania składni wiadomości e-mail w łańcuchu. (Źródło)
4. Adres IPv4
/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)3 (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?)
Podobny do adresu e-mail jest typowy adres IP używany do identyfikacji konkretnego komputera uzyskującego dostęp do Internetu. To wyrażenie regularne sprawdzi ciąg znaków, aby sprawdzić, czy jest zgodny ze składnią adresu IPv4. (Źródło)
5. Adres IPv6
(([0-9a-fA-F] 1,4:) 7,7 [0-9a-fA-F] 1,4 | ([0-9a-fA-F] 1 , 4:) 1,7: | ([0-9a-fA-F] 1,4:) 1,6: [0-9a-fA-F] 1,4 | ([0-9a-fA-F] 1,4:) 1,5 (: [0-9a-fA-F] 1,4) 1,2 | ([0-9a -fA-F] 1,4:) 1,4 (: [0-9a-fA-F] 1,4) 1,3 | ([0-9a-fA-F] 1,4:) 1,3 (: [0-9a-fA-F] 1,4) 1,4 | ([0-9a-fA-F] 1,4 :) 1,2 (: [0-9a-fA-F] 1,4) 1,5 | [0-9a-fA-F] 1,4: ((: [0 -9a-fA-F] 1,4) 1,6) |: ((: [0-9a-fA-F] 1,4) 1,7 |:) | fe80: (: [0-9a-fA-F] 0,4) 0,4% [0-9a-zA-Z] 1, |: :( ffff (: 0 1,4) 0,1:) 0,1 ((25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9 ]).) 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9]) | ([0-9a-fA-F] 1,4:) 1,4: ((25 [0-5] | (2 [0-4] | 1 0,1 [0-9 ]) 0,1 [0-9]).) 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9])))
Alternatywnie możesz sprawdzić adres dla nowszej składni IPv6 za pomocą tego bardziej zaawansowanego fragmentu wyrażeń regularnych. Różnica jest niewielka, choć istotna podczas rozwoju. (Źródło)
6. Separator tysięcy
/ d 1,3 (a = (d 3) + (a! d)) / g
Tradycyjne systemy numerowania wymagają przecinka, kropki lub innego oznaczenia co trzecią cyfrę większej liczby. Ten kod regex działa na dowolnej liczbie i zastosuje dowolny znak, który wybierzesz, na co trzecią cyfrę dzielącą się na tysiące, miliony itd. (Źródło)
7. Przygotuj HTTP do hiperłącza
if (! s.match (/ ^ [a-zA-Z] +: /)) s = 'http: //' + s;
Niezależnie od tego, czy pracujesz w JavaScript, Ruby czy PHP, to wyrażenie regularne może okazać się bardzo pomocne. Sprawdza dowolny ciąg URL, aby sprawdzić, czy ma on prefiks HTTP / HTTPS, a jeśli nie, odpowiednio go przedrostek. (Źródło)
8. Wyciągnij domenę z adresu URL
/https?:\t\t\t??[-++\.)?([-,++)\t++??\t
Każda domena internetowa zawiera początkowy protokół (HTTP lub HTTPS) i często poddomenę oraz dodatkową ścieżkę strony. Możesz użyć tego fragmentu, aby przeciąć to wszystko i zwrócić tylko nazwę domeny bez dodatkowych dodatków. (SourceL
9. Sortuj słowa kluczowe według liczby słów
^ [^ s] * $ odpowiada dokładnie jednowyrazowemu słowu kluczowemu ^ [^ s] * s [^ s] * $ pasuje dokładnie do słowa kluczowego 2-wyrazowego ^ [^ s] * s [^ s] * dopasowuje słowa kluczowe o co najmniej 2 słowach (2 i więcej) ^ ([^ s] * s) 2 [^ s] * $ pasuje dokładnie do słowa kluczowego 3-wyrazowego ^ ([^ s] * ) 4 [^ s] * $ pasuje do 5 słów i więcej słów kluczowych (longtail)
Użytkownicy Google Analytics i Narzędzi dla webmasterów będą naprawdę cieszyć się tym wyrażeniem regularnym. Może sortować i organizować słowa kluczowe na podstawie liczby słów użytych w wyszukiwaniu.
Może to być specyficzne numerycznie (tj. Tylko 5 słów) lub może pasować do zakresu słów (tj. 2 lub więcej słów). W przypadku sortowania danych analitycznych jest to jedno potężne wyrażenie. (Źródło)
10. Znajdź poprawny ciąg Base64 w PHP
php [] eval (base64_decode () (([A-Za-z0-9 + /] 4) * ([A-Za-z0-9 + /] 3 = | [A-Za-z0-9 + /] 2 ==)?) 1
Jeśli jesteś deweloperem PHP, w pewnym momencie może zajść potrzeba przeanalizowania kodu w poszukiwaniu obiektów binarnych zakodowanych w Base64. Ten fragment może być zastosowany do całego kodu PHP i sprawdzi, czy istnieją istniejące ciągi Base64. (Źródło)
11. Ważny numer telefonu
^ +? 1,3? [-.]? (? (?: d 2,3))? [-.]? d d [-.]? d d d $
Krótkie, słodkie i na temat. Ten kod regex zweryfikuje każdą tradycyjną składnię numeru telefonu opartą głównie na amerykańskim stylu numerów telefonów.
Ponieważ może to przerodzić się w dość skomplikowany temat, polecam przejrzenie tego wątku stosu w celu uzyskania bardziej szczegółowych odpowiedzi. (Źródło)
12. Leading & Trailing Whitespace
^ [s] + | [s] + $
Użyj tego fragmentu kodu, aby wyciągnąć początkowe / końcowe białe znaki z ciągu. To może nie być wielka sprawa, ale czasami może wpływać na dane wyjściowe po pobraniu z bazy danych lub zastosowaniu do innego kodowania dokumentu. (Źródło)
13. Pull Image Source)
\< *[img][^\>] * [src] * = * [”] 0,1 ([^
Jeśli z jakiegoś powodu musisz pobrać źródło obrazu bezpośrednio z HTML, ten fragment kodu jest idealnym rozwiązaniem. Chociaż może działać bezproblemowo na zapleczu, devs JS devend powinien zamiast tego polegać na metodzie .attr () jQuery dla frontendu. (Źródło)
14. Sprawdź poprawność daty w formacie DD / MM / RRRR
^ (? :( ?: 31 (/ | - |) (?: 0? [13578] | 1 [02])) 1 | (? :( ?: 29 | 30) (| |) (?: 0? [1,3-9] | 1 [0-2]) 2)) (? :( ?: 1 [6-9] | [2-9] d)? d 2) $ | ^ (?: 29 (/ | - |) 0? 2 3 (? :(? :( ?: 1 [6-9] | [2-9] )? (?: 0 [48] | [2468] [048] | [13579] [26]) | (? :( ?: 16 | [2468] [048] | [3579] [26]) 00)) )) $ | ^ (?: 0? [1-9] | 1 d | 2 [0-8]) (/ | - |) (? :( ?: 0? [1-9]) | (?: 1 [0-2])) 4 (? :( ?: 1 [6-9] | [2-9] d)? D 2) $
Daty są trudne, ponieważ mogą pojawiać się jako tekst + cyfry lub po prostu liczby z różnymi formatami. PHP ma fantastyczną funkcję daty, ale nie zawsze jest to najlepszy wybór, gdy ciągniesz surowy ciąg. Rozważ zamiast tego użycie tego wyrażenia regularnego dla tej konkretnej składni daty. (Źródło)
15. Dopasowanie identyfikatora wideo YouTube
/http:\t\t(?:youtu\tbe\_|(?:[az]2,3.)?youtube\twatch_?:\t =) ([w -] 11). * / gi
YouTube od lat zachowuje tę samą strukturę adresów URL, ponieważ działa. Jest to również najpopularniejsza witryna do udostępniania filmów w Internecie, więc filmy z YouTube mają największy ruch.
Jeśli chcesz pobrać identyfikator wideo YouTube z adresu URL, ten kod regex jest idealny i powinien działać idealnie dla wszystkich wariantów struktur URL YouTube. (Źródło)
16. Ważny numer ISBN
/ b (?: ISBN (? ::? |))? ((?: 97 [89]) d 9 [dx]) b / i
Drukowane książki są zgodne z systemem numeracji znanym jako ISBN. Może to być dość trudne, jeśli weźmiemy pod uwagę różnice między ISBN-10 a ISBN-13.
Jednak ten niesamowity fragment pozwala zweryfikować numer ISBN i sprawdzić, czy jest to ISBN10 lub 13. Cały kod jest napisany w PHP, więc powinno to okazać się wyjątkowo przydatne dla twórców stron internetowych. (Źródło)
17. Sprawdź kod pocztowy
^ d 5 (?: [- s] d 4)? $
Twórca tego fragmentu nie tylko wydał swoją pracę za darmo, ale również poświęcił czas na jej wyjaśnienie. Ten fragment kodu jest przydatny, jeśli pasujesz do typowego 5-cyfrowego kodu pocztowego lub dłuższej 9-cyfrowej wersji.
Należy pamiętać, że dotyczy to głównie amerykańskiego systemu kodów pocztowych, więc może to wymagać dostosowania dla innych krajów. (Źródło)
18. Ważna nazwa użytkownika Twittera
/ @ ([A-Za-z0-9 _] 1,15) /
Oto bardzo mały fragment kodu do dopasowania z nazwami użytkowników Twittera znalezionymi w łańcuchu. Sprawdza @wzmianka składnia, która jest idealna do automatycznego skanowania zawartości tweeta (lub tweetów). (Źródło)
19. Numery kart kredytowych
^ (?: 4 [0-9] 12 (?: [0-9] 3)? | 5 [1-5] [0-9] 14 | 6 (?: 011 | 5 [ 0-9] [0-9]) [0-9] 12 | 3 [47] [0-9] 13 | 3 (?: 0 [0-5] | [68] [0-9 ]) [0-9] 11 | (?: 2131 | 1800 | 35 d 3) d 11) $
Walidacja numeru karty kredytowej często wymaga bezpiecznej platformy hostowanej w innym miejscu online. Ale regex może być użyty do minimalnych wymagań typowego numeru karty kredytowej.
Bardziej wyczerpującą listę kodów dla poszczególnych kart można znaleźć tutaj. Obejmuje to karty Visa, MasterCard, Discover i wiele innych. (Źródło)
20. Znajdź atrybuty CSS
^ s * [a-zA-Z -] + s * [:] 1 s [a-zA-Z0-9 s. #] + [;] 1
Rzadko zdarza się uruchamiać wyrażenia regularne na CSS, ale nie jest to też bardzo dziwna sytuacja.
Ten fragment kodu może być użyty do wyciągnięcia każdej pasującej właściwości CSS i wartości z poszczególnych selektorów. Może być używany z wielu powodów, być może w celu wyświetlenia fragmentów CSS lub usunięcia duplikatów właściwości. (Źródło)
21. Usuń komentarze HTML
Jeśli z jakiegoś powodu musisz usunąć wszystkie komentarze z bloku HTML, jest to kod regex do użycia. Wraz z wyrażeniem znajdziesz przykład PHP używający preg_replace. (Źródło)
22. URL profilu na Facebooku
/(?:http:\t\t)????www\.)?facebook\t\t\t?? (?:))##\_)?(?:pages\/)? (?:[\w W\-]*)/
Facebook jest niezwykle popularny i przeszedł wiele różnych schematów URL. W sytuacji, gdy bierzesz adresy URL profilów od użytkowników, pomocne może być przeanalizowanie ciągów znaków i upewnienie się, że są one odpowiednio uporządkowane. Ten fragment może zrobić dokładnie to i jest idealny dla wszystkich linków w stylu FB. (Źródło)
23. Sprawdź wersję Internet Explorera
^. * MSIE [5-8] (?: [0-9] +)? (?!. * Trident / [5-9] 0). * $
Przejście Microsoftu na Edge nie było jednomyślne i wielu ludzi nadal polega na klasycznym Internet Explorerze. Programiści często muszą sprawdzać wersje IE, aby radzić sobie z niespójnościami z silnikami renderującymi.
Ten fragment może być używany w JavaScript do testowania agenta przeglądarki na podstawie używanej wersji Internet Explorera (5-11). (Źródło)
24. Wyciąg ceny
/(\T [0-9,]+(\t [0-9]2)?)/
Ceny są dostępne w różnych formatach, które zawierają dziesiętne, przecinki i symbole walut. To wyrażenie regularne może sprawdzić wszystkie te różne formaty, aby pobrać cenę z dowolnego ciągu. (Źródło)
25. Parse E-mail Header
/ [A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]2,6\t
Dzięki tej pojedynczej linii kodu możesz analizować nagłówek wiadomości e-mail, aby ją wyciągnąć “do” informacje z nagłówka. Może być używany w połączeniu z wieloma połączonymi e-mailami.
Jeśli wolisz uniknąć wyrażenia regularnego dla tego zadania, możesz polegać na bibliotece analizującej. (Źródło)
26. Dopasuj określony rodzaj pliku
/^(.*\t(?!(htm|html|class|js)$))?[^.]*$/i
Gdy masz do czynienia z różnymi formatami plików, takimi jak .xml, .html i .js, może to pomóc w sprawdzeniu plików zarówno lokalnych, jak i przesyłanych przez użytkowników. Ten fragment pobiera rozszerzenie pliku, aby sprawdzić, czy jest poprawne z serii poprawnych rozszerzeń, które można zmienić w razie potrzeby. (Źródło)
27. Dopasuj ciąg URL
/[-a-zA-Z0-9@:%_\t~~~??////=]2,256\t[az]2,4\t\t -9 @:% _ +. ~ #? & // =] *)? / Gi
Ten fragment może być użyty zarówno dla ciągów HTTPS, jak i HTTP, aby sprawdzić, czy tekst pasuje do tradycyjnej składni domeny TLD. Istnieje również prosta implementacja tego wyrażenia regularnego za pomocą RegExp JavaScript. (Źródło)
28. Dołącz rel =”nofollow” do linków
(] *) (href = "https?: //) ((?! (?: (?: www.)?". implode ('| (?: www.)?', $ follow_list). ') ) [^ "] +)" ((?!. * brel =) [^>] *) (?: [^>] *)>
Jeśli pracujesz z partią kodu HTML, może być makabryczne stosowanie pracy ręcznej w powtarzających się zadaniach. Wyrażenia regularne są idealne na tę okazję i zaoszczędzą mnóstwo czasu.
Ten fragment może wyciągnąć wszystkie linki zakotwiczenia z bloku HTML i dodać rel =”nofollow” przypisać do każdego elementu. Deweloper, który napisał ten kod, był na tyle uprzejmy, że opublikował surowe wyrażenie oraz roboczy przykład w PHP.
29. Dopasowanie zapytań o media
/ @ media ([^ ] +) (s S + + s * / g
Przełamuj zapytania mediów CSS o ich parametry i właściwości. Może to pomóc w analizie zewnętrznego CSS w bardziej przejrzysty sposób, z bardziej bezpośrednim naciskiem na sposób działania kodu. (Źródło)
30. Składnia wyszukiwania Google
/([+-]?(?:'.+?'|".+?"|[^+\-] 1 [^] *)) / g
Możesz zbudować własny kod regex do manipulowania wyszukiwanym tekstem przy użyciu składni znaków towarowych Google. Znak plus (+) oznacza dodatkowe słowa kluczowe, a znak minus (-) oznacza słowa, które należy zignorować i usunąć z wyników.
Jest to dość skomplikowany fragment, ale właściwie użyty może stanowić podstawę do zbudowania własnego algorytmu wyszukiwania. (Źródło)
Zakończyć
Ścieżka do opanowania wyrażenia regularnego jest długa, ale satysfakcjonująca, jeśli się go trzymasz. Poza typowymi narzędziami regex najlepszym sposobem na studiowanie jest powtarzanie. Spróbuj zbudować aplikacje internetowe, które polegają na tych fragmentach wyrażeń regularnych, aby dowiedzieć się, jak działają w prawdziwie funkcjonującej aplikacji internetowej. A jeśli masz inne fragmenty sugerujące, możesz opublikować je w obszarze komentarzy poniżej.
Teraz przeczytaj:
50 użytecznych fragmentów CSS Każdy projektant powinien mieć