RegExp - example /DESTRUCTION/ Peace or...UTTER DESTRUCTION...it's up to you. ○ Wzorzec musi wystąpić przynajmniej raz ○ Położenie nie jest istotne -- Kirk in 'A Taste Of Armageddon'
/Captin.Kirk/s Metacharacters - Dot ○ Modyfikator s włącza tryb single line (dotall) ○ http://nikic.github.io/2011/12/10/PCRE-and-newlines.html Captin↵ Kirk ✓
Character Classes - skróty \w słowo [A-Za-z0-9_] \W wszystko oprócz słów [^A-Za-z0-9_] \d cyfra [0-9] \D wszystko oprócz cyfr [^0-9] \s biały znak [ \n\r\t\f] \S wszystko oprócz białych znaków [^ \n\r\t\f]
Character Classes - skróty \w słowo [A-Za-z0-9_] \W wszystko oprócz słów [^A-Za-z0-9_] \d cyfra [0-9] \D wszystko oprócz cyfr [^0-9] \s biały znak [ \n\r\t\f] \S wszystko oprócz białych znaków [^ \n\r\t\f] . Kropka [^\n]
/Ca*pti+n K?i{1,3}rk/ ○ * zero lub więcej (0 → ∞) ○ + jedno lub więcej (1 → ∞) ○ ? zero lub jedno (0 → 1) ○ {x,y} od x do y (x → y) Metacharacters - Quantifier
/Ca*pti+n K?i{1,3}rk/ ○ * zero lub więcej (0 → ∞) = {0,} ○ + jedno lub więcej (1 → ∞) = {1,} ○ ? zero lub jedno (0 → 1) = {0,} ○ {x,y} od x do y (x → y) Metacharacters - Quantifier
Assertions and anchors ○ Znak dolara oznacza, że napis musi się kończyć się znakiem k ○ Dolar wyszuka koniec napisu przed znakiem nowej lini /k$/ Kirk\n
Assertions and anchors Captain James T. Kirk Commander Spock Commander Dr. Leonard McCoy /^c\w+/im ○ Karetka (^) wyszuka pasujące ciągi, zaraz po znaku nowej lini
Assertions and anchors Captain James T. Kirk Commander Spock Commander Dr. Leonard McCoy ○ \A oznacza, że napis jest szukany tylko na samym początku /\Ac\w+/im
Assertions and anchors Captain James T. Kirk Commander Spock Commander Dr. Leonard McCoy ○ \A oznacza, że ciąg jest szukany tylko na samym początku napisu ○ \Z wyszuka sam koniec napisu przed znakiem nowej linii ○ \z wyszuka koniec napisu /\Ac\w+/im
Backtracking ○ Algorytm z nawrotami ○ Jeśli wybrana droga nie prowadzi do rozwiązania, silnik wykona nawrót do poprzedniego punktu, w kórym może podjąć decyzję.
Backtracking ○ Algorytm z nawrotami ○ Jeśli wybrana droga nie prowadzi do rozwiązania, silnik wykona nawrót do poprzedniego punktu, w kórym może podjąć decyzję.
Atomic grouping ○ Wyłączenie backtrackingu i niepozwalanie na nawroty może być pomocne ○ Celem jest przyśpieszenie nieudanych dopasowań, zwłaszcza przy zagnieżdżonych kwantyfikatorach
Atomic grouping (?>\d+)ff \d++ff ○ Aby zmienić kwantyfikator na zaborczy (possessive) wystarczy dodać + ○ Kwantyfikatory takie są zawsze zachłanne ○ Pamiętaj, że może to zmienić wynik dopasowania
Unicode - UTF-8 Mode ○ Kody ASCII (0-127) są identyczne ○ 2-4 Bajty użyte do reprezentacji znaków (Codepoints) ○ Każdy codepoint jest uważany za jeden znak.
Czytelność / ^ # początek łańcucha [a-z0-9_%.-]+ # user @ # delimiter @ [a-z0-9.-]+ # domena \. # delimiter . [a-z]{2,4} # top level domain $ # koniec łańcucha /iDx ○ Wszystko zaczynajace sie od znaku # do końca linii jest komentarzem