\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{PiotrRybka82} \pdfinfo{ /Title (regular-expressions-cheat-sheet-1-0.pdf) /Creator (Cheatography) /Author (PiotrRybka82) /Subject (Regular Expressions 1.0 Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A32E60} \definecolor{LightBackground}{HTML}{F9F1F5} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Regular Expressions 1.0 Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{PiotrRybka82} via \textcolor{DarkBackground}{\uline{cheatography.com/29533/cs/15483/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}PiotrRybka82 \\ \uline{cheatography.com/piotrrybka82} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 15th April, 2018.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{3.44 cm} x{4.56 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Główne klasy znaków}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Literały, znaki dosłowne}} & Znaki mające taką samą wartość jak w piśmie, z którego pochodzą \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} {\bf{Metaznaki}} & Znaki lub ich kombinacje opisujące literały \tn % Row Count 7 (+ 3) % Row 2 \SetRowColor{LightBackground} {\bf{Znaki ucieczki}} & Zamieniają metaznak na literał (zob. niżej) \tn % Row Count 10 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Metaznaki}} \tn % Row 0 \SetRowColor{LightBackground} . & Dowolny znak (zob. niżej) \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} a|b & Alternatywa ({\emph{a}} lub {\emph{b}}) \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} {[}\textasciicircum{}-{]} & Klasy znaków (zob. niżej) \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} *+? & Kwantyfikatory (zob. niżej) \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \{\} & Kwantyfikatory (zob. niżej) \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} () & Grupa znaków (zob. niżej) \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \textasciicircum{}\$ & Granice tekstu (zob. niżej) \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \textbackslash{} & Klasa znaków, znak ucieczki, znak biały (zob. niżej) \tn % Row Count 9 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{1.68 cm} x{6.32 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Znaki ucieczki}} \tn % Row 0 \SetRowColor{LightBackground} \textbackslash{}\textbackslash{} & Ukośnik lewy \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \textbackslash{}. & Kropka \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \textbackslash{}{[} \textbackslash{}{]} & Nawiasy kwadratowe \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \textbackslash{}\{ \textbackslash{}\} & Klamry \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \textbackslash{}( \textbackslash{}) & Nawiasy okrągłe \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \textbackslash{}| & Rura \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \textbackslash{}- & Łącznik (dywiz) \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \textbackslash{}\textasciicircum{} & Karetka \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \textbackslash{}\$ & Znak dolara \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \textbackslash{}* & Gwiazdka (asterysk) \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \textbackslash{}+ & Plus \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} x{7.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Znaki sterujące (białe)}} \tn % Row 0 \SetRowColor{LightBackground} \textbackslash{}t & Tabulacja (pozioma; ASCII: 9) \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \textbackslash{}v & Tabulacja pionowa, dowolny pionowy znak biały \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \textbackslash{}V & Każdy znak za wyjątkiem pionowego znaku białego* \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \textbackslash{}n & Koniec akapitu (new line, line feed; ASCII: 10)** \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} \textbackslash{}N & Każdy znak za wyjątkiem znaku końca akapitu* \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} \textbackslash{}r & Powrót karetki (carriage return; ASCII: 13) \tn % Row Count 11 (+ 2) % Row 6 \SetRowColor{LightBackground} \textbackslash{}R & Dowolna sekwencja znaków Unicode oznaczająca nowy akapit \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} \textbackslash{}a & Dzwonek (alarm; ASCII: 7) \tn % Row Count 14 (+ 1) % Row 8 \SetRowColor{LightBackground} \textbackslash{}0 & Znak null (ASCII: 0) \tn % Row Count 15 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\emph{) Nie wszystkie implementacje. \newline }}*) W niektórych tekstach koniec akapitu (enter) to 2 znaki: \textbackslash{}r\textbackslash{}n.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{8.4cm}}{\bf\textcolor{white}{Kropka – dowolny znak}} \tn \SetRowColor{white} \mymulticolumn{1}{x{8.4cm}}{Kropka oznacza każdy znak za wyjątkiem znaku (znaków) końca akapitu, a więc \textbackslash{}n lub \textbackslash{}r\textbackslash{}n. Może jednak oznaczać również te znaki po włączeniu odpowiedniej funkcji (np. single line, dotall) lub dodaniu flagi /s lub modyfikatora (?s).% Row Count 5 (+ 5) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{1.04 cm} x{6.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Klasy znaków}} \tn % Row 0 \SetRowColor{LightBackground} {[}abc{]} & 1 znak: a albo b, albo c \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} {[}a-c{]} & 1 znak z zakresu od a do c \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} {[}\textasciicircum{}abc{]} & 1 znak różny od a oraz b, oraz c \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} {[}\textasciicircum{}a-c{]} & 1 znak różny od każdego z zakresu od a do c \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} \textbackslash{}d & Cyfry: \textbackslash{}d = {[}0-9{]} = {[}0123456789{]} \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} \textbackslash{}D & Niecyfry: \textbackslash{}D = {[}\textasciicircum{}0-9{]} = {[}\textasciicircum{}0123456789{]} \tn % Row Count 9 (+ 2) % Row 6 \SetRowColor{LightBackground} \textbackslash{}w & Znak wyrazowy: \textbackslash{}w = {[}a-zA-Z0-9\_{]} \tn % Row Count 10 (+ 1) % Row 7 \SetRowColor{white} \textbackslash{}W & Znak niewyrazowy: \textbackslash{}W = {[}\textasciicircum{}a-zA-Z0-9\_{]} \tn % Row Count 12 (+ 2) % Row 8 \SetRowColor{LightBackground} \textbackslash{}s & Biały znak (spacja, enter, tabulacja i in.) \tn % Row Count 14 (+ 2) % Row 9 \SetRowColor{white} \textbackslash{}S & Znak niebiały: \textbackslash{}S = \textbackslash{}w + !, ?, @ i in. \tn % Row Count 16 (+ 2) % Row 10 \SetRowColor{LightBackground} \textbackslash{}L* & Małe litery \tn % Row Count 17 (+ 1) % Row 11 \SetRowColor{white} \textbackslash{}U* & Wielkie litery \tn % Row Count 18 (+ 1) % Row 12 \SetRowColor{LightBackground} \textbackslash{}E* & Wyłącza działanie \textbackslash{}U oraz \textbackslash{}L \tn % Row Count 19 (+ 1) % Row 13 \SetRowColor{white} \textbackslash{}b & Granice wyrazu \tn % Row Count 20 (+ 1) % Row 14 \SetRowColor{LightBackground} \textbackslash{}B & Granice niewyrazu \tn % Row Count 21 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{*) Działa tylko w oknie "Zamień na".} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.872 cm} x{1.368 cm} x{1.584 cm} x{2.376 cm} } \SetRowColor{DarkBackground} \mymulticolumn{4}{x{8.4cm}}{\bf\textcolor{white}{Kwantyfikatory}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Zachłanne}} & {\bf{Leniwe}} & {\bf{Zaborcze}} & Znak {\emph{a}}... \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} a* & a*? & a*+ & 0 razy lub więcej \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} a+ & a+? & a++ & 1 raz lub więcej \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} a? & a?? & a?+ & 0 lub 1 raz \tn % Row Count 7 (+ 1) % Row 4 \SetRowColor{LightBackground} a\{3\} & a\{3\}? & a\{3\}+ & 3 razy \tn % Row Count 8 (+ 1) % Row 5 \SetRowColor{white} a\{3,\} & a\{3,\}? & a\{3,\}+ & 3 lub więcej razy \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} a\{3,6\} & a\{3,6\}? & a\{3,6\}+ & od 3 do 6 razy \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}----} \SetRowColor{LightBackground} \mymulticolumn{4}{x{8.4cm}}{Kwantyfikatory zachłanne - zwracają maksymalne możliwe dopasowanie. \newline Kwantyfikatory leniwe - zwracają minimalne możliwe dopasowanie. \newline Kwantyfikatory zaborcze - zwracają tylko maksymalne dopasowanie lub żadne.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}----} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.16 cm} x{5.84 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Grupy znaków}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Grupy przechwycone}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} (abc) & Nienazwana grupa {\emph{abc}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} (?|ab|cd) & Nienazwane grupy {\emph{ab}} i {\emph{cd}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} (?'x'ab) & Grupa {\emph{ab}} o nazwie {\emph{x}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} (?\textless{}x\textgreater{}ab) & Grupa {\emph{ab}} o nazwie {\emph{x}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \seqsplit{(?'x'ab|cd)} & Grupy {\emph{ab}} i {\emph{cd}} o nazwie {\emph{x}} \tn % Row Count 7 (+ 2) % Row 6 \SetRowColor{LightBackground} (?\textless{}x\textgreater{}ab|cd) & Grupy {\emph{ab}} i {\emph{cd}} o nazwie {\emph{x}} \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{Grupy nieprzechwycone}}} \tn % Row Count 10 (+ 1) % Row 8 \SetRowColor{LightBackground} (?:abc) & Nienazwana grupa {\emph{abc}} \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Odwołania do przechwyconych grup znaków}} \tn % Row 0 \SetRowColor{LightBackground} \textbackslash{}1\{\{nl\}\}\textbackslash{}g\textless{}1\textgreater{}\{\{nl\}\}\textbackslash{}g\{1\} & Pierwsza grupa nienazwana \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \textbackslash{}g\{-1\} & Ostatnia grupa nienazwana\{\{nl\}\}(przed odwołaniem) \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} \textbackslash{}g\textless{}x\textgreater{} & Grupa o nazwie {\emph{x}} \tn % Row Count 6 (+ 1) % Row 3 \SetRowColor{white} \textbackslash{}g\textless{}0\textgreater{} & Wszystkie wyszukania\{\{nl\}\}(także grupy nieprzechwycone) \tn % Row Count 9 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.052 cm} x{1.748 cm} x{3.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Granice (kotwice)}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Początek}} & {\bf{Koniec}} & \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{3}{x{8.4cm}}{Granice niekonsumujące znaku (sprawdzają tylko obecność znaku granicznego)} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \textasciicircum{} & \$ & Cały tekst lub akapit* \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \textbackslash{}b & \textbackslash{}b & Wyraz \tn % Row Count 7 (+ 1) % Row 4 \SetRowColor{LightBackground} \textbackslash{}B & \textbackslash{}B & Niewyraz \tn % Row Count 8 (+ 1) % Row 5 \SetRowColor{white} \textbackslash{}\textless{} & \textbackslash{}\textgreater{} & Wyraz \tn % Row Count 9 (+ 1) % Row 6 \SetRowColor{LightBackground} {[}{[}:\textless{}:{]}{]} & {[}{[}:\textgreater{}:{]}{]} & Wyraz (zob. POSIX) \tn % Row Count 10 (+ 1) % Row 7 \SetRowColor{white} \textbackslash{}A & \textbackslash{}Z & Cały tekst \tn % Row Count 11 (+ 1) % Row 8 \SetRowColor{LightBackground} \textbackslash{}Q & \textbackslash{}E & Wyłączenie metaznaków \tn % Row Count 13 (+ 2) % Row 9 \SetRowColor{white} \mymulticolumn{3}{x{8.4cm}}{Granice konsumujące znaki (zwracają sam znak graniczny)} \tn % Row Count 15 (+ 2) % Row 10 \SetRowColor{LightBackground} (**) & \textbackslash{}W & Wyraz \tn % Row Count 16 (+ 1) % Row 11 \SetRowColor{white} & \textbackslash{}n lub \textbackslash{}r\textbackslash{}n & Akapit \tn % Row Count 18 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \SetRowColor{LightBackground} \mymulticolumn{3}{x{8.4cm}}{*) Znaki \textasciicircum{}, \$ oznaczają granice akapitu tylko w niektórych implementacjach lub przy użyciu flagi /m lub modyfikatora (?m) (multiline). \newline **) Konsumujące znaki końca wyrazu i akapitu wskazują też początek niepierwszego wyrazu i akapitu. Znakiem końca ostatniego wyrazu i akapitu są \$ oraz \textbackslash{}Z.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.72 cm} x{5.28 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Asercje (assertions)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Przewidywania postępowe (lookaheads)}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} a(?=b) & Zwróć {\emph{a}}, jeśli PO nim jest {\emph{b}} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} a(?!b) & Zwróć {\emph{a}}, jeśli PO nim NIE ma {\emph{b}} \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{Przewidywania wsteczne (lookbehinds)}}} \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} (?\textless{}=b)a & Zwróć {\emph{a}}, jeśli PRZED nim jest {\emph{b}} \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} (?\textless{}!b)a, (?!=b)a & Zwróć {\emph{a}}, jeśli PRZED nim NIE ma {\emph{b}} \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Wyrażenie warunkowe}}} \tn % Row Count 11 (+ 1) % Row 7 \SetRowColor{white} (?(w)a|b) & Jeśli dopasowano {\emph{w}}, znajdź {\emph{a}}, jeśli nie, znajdź {\emph{b}} \tn % Row Count 14 (+ 3) % Row 8 \SetRowColor{LightBackground} (?(w)a) & Jeśli dopasowano {\emph{w}}, znajdź {\emph{a}} \tn % Row Count 16 (+ 2) % Row 9 \SetRowColor{white} (?w)|b) & Jeśli NIE dopasowano {\emph{w}}, znajdź {\emph{b}} \tn % Row Count 18 (+ 2) % Row 10 \SetRowColor{LightBackground} {\bf{(g)}}(?({\bf{1}})a) & Warunek jako grupa nienazwana \tn % Row Count 20 (+ 2) % Row 11 \SetRowColor{white} {\bf{(?'n')}}(?({\bf{n}})a) & Warunek jako grupa nazwana \tn % Row Count 22 (+ 2) % Row 12 \SetRowColor{LightBackground} (?({\bf{?\textless{}=w}})a) & Warunek jako przewidywanie \tn % Row Count 24 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.2 cm} x{4.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Opcje (modifiers)}} \tn % Row 0 \SetRowColor{LightBackground} (?i) & Pominięcie wielkości liter \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} (?-i) & Uwzględnienie wielkości liter \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} (?x) & Ignorowanie spacji i napisów po \# (komentarzy) \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} (?-x) & Traktuj spacje i \# jak literały \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} (?m) & \textasciicircum{} i \$ wskazują początek/koniec akapitu \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} (?-m) & \textasciicircum{} i \$ wskazują tylko początek/koniec tekstu \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} (?J) & Możliwe duplikaty nazw grup* \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{Zapis modyfikatorów}}} \tn % Row Count 15 (+ 1) % Row 8 \SetRowColor{LightBackground} (?ism) ≡ (?i)(?s)(?m) & Kilka modyfikatorów \tn % Row Count 17 (+ 2) % Row 9 \SetRowColor{white} (?is) ≡ (?si) & Kolejność modyfikatorów \tn % Row Count 19 (+ 2) % Row 10 \SetRowColor{LightBackground} (?-im) ≡ (?-i)(?-m) & Negacja modyfikatorów \tn % Row Count 21 (+ 2) % Row 11 \SetRowColor{white} (?i:te)st ≡ (?i)te(?-i)st & Zawężenie działania modyfikatorów \tn % Row Count 23 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{* Nie we wszystkich silnikach.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.8 cm} x{5.2 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Opcje silnika PCRE (verbs)}} \tn % Row 0 \SetRowColor{LightBackground} (*UCP) & Poszerzenie klas znaków o znaki z całego Unicode* \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} (*LIMIT\_MATCH=({\bf{5}}) & Ograniczenie liczby dopasowań do {\bf{5}} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \seqsplit{(*LIMIT\_RECURSION=5)} & Ograniczenie liczby dopasowywanych podwzorców \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{Ustawienia znaków i sekwencji oznaczających koniec akapitu:} \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} (*CR) & Koniec akapitu to znak \textbackslash{}r \tn % Row Count 9 (+ 1) % Row 5 \SetRowColor{white} (*LF) & Koniec akapitu to znak \textbackslash{}n \tn % Row Count 10 (+ 1) % Row 6 \SetRowColor{LightBackground} (*CRLF) & Koniec akapitu to sekwencja \textbackslash{}r\textbackslash{}n \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} (*ANYCRLF) & Koniec akapitu to \textbackslash{}r lub \textbackslash{}n, lub \textbackslash{}r\textbackslash{}n \tn % Row Count 14 (+ 2) % Row 8 \SetRowColor{LightBackground} (*ANY) & Koniec akapitu do dowolny znak oznaczający w Unicode koniec akapitu** \tn % Row Count 17 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\emph{) Klasy \textbackslash{}d, \textbackslash{}w, \textbackslash{}s, \textbackslash{}h, \textbackslash{}v oznaczają domyślnie znaki z zakresu ASCII. Opcja (}}UCP) poszerza ich zakresy na całą tablicę Unicode. \newline **) Znakami końca akapitu stają się: \textbackslash{}r\textbackslash{}n, \textbackslash{}r, \textbackslash{}n, \textbackslash{}v, \textbackslash{}f, U-0085, U-2028, U-2029.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.12 cm} x{4.88 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Definicje wyszukiwań}} \tn % Row 0 \SetRowColor{LightBackground} (?(DEFINE)(?'{\bf{x}}'{\emph{abc}})) & Zdefiniowanie wyszukiwania {\emph{abc}} o nazwie {\bf{x}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \textbackslash{}g'{\bf{x}}'\{\{nl\}\}\textbackslash{}g\textless{}{\bf{x}}\textgreater{} & Wywołanie wyszukiwania o nazwie {\bf{x}} \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Same definicje są ignorowane podczas wyszukiwania.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.216 cm} x{3.648 cm} x{2.736 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Macierz podstawiania}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{3}{x{8.4cm}}{Zamiana wielu znaków w 2 krokach, np. {\emph{a}}, {\emph{b}}, {\emph{c}} na, odpowiednio, {\emph{x}}, {\emph{y}}, {\emph{z}}.} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{Krok:}} & {\bf{Znajdź:}} & {\bf{Zamień na:}} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} {\bf{1}} & ({[}abc{]}) & \textbackslash{}`\textbackslash{}`\textbackslash{}1\textbackslash{}`ax\textbackslash{}`by\textbackslash{}`cz\textbackslash{}` \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} {\bf{2}} & \textbackslash{}`\textbackslash{}`(.).*?\textbackslash{}`\textbackslash{}1(.).*?\textbackslash{}`\textbackslash{}` & \textbackslash{}2 \tn % Row Count 8 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.96 cm} x{7.04 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Kody znaków}} \tn % Row 0 \SetRowColor{LightBackground} \textbackslash{}x\#\# & 2-cyfrowy kod szesnastkowy (Unicode) \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \textbackslash{}x\{\#\} & kod szesnastkowy (Unicode) \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \textbackslash{}o\{\#\} & kod ósemkowy (Unicode) \tn % Row Count 6 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.84 cm} x{6.16 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Znaki POSIX}} \tn % Row 0 \SetRowColor{LightBackground} {[}{[}:digit:{]}{]} & Cyfry \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {[}{[}:xdigit:{]}{]} & Cyfry szesnastkowe {[}0-9a-fA-F{]} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} {[}{[}:alpha:{]}{]} & Litery \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} {[}{[}:lower:{]}{]} & Małe litery \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} {[}{[}:upper:{]}{]} & Wielkie litery \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} {[}{[}:alnum:{]}{]} & Litery i cyfry \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} {[}{[}:ascii:{]}{]} & Znaki z tablicy ASCII \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} {[}{[}:punct:{]}{]} & Nielitery i niecyfry \tn % Row Count 16 (+ 2) % Row 8 \SetRowColor{LightBackground} {[}{[}:word:{]}{]} & Znaki wyrazowe (litery, cyfry i podkreślnik) \tn % Row Count 18 (+ 2) % Row 9 \SetRowColor{white} {[}{[}:graph:{]}{]} & Znaki widoczne (niebiałe) \tn % Row Count 20 (+ 2) % Row 10 \SetRowColor{LightBackground} {[}{[}:print:{]}{]} & Znaki widoczne (niebiałe) i spacje \tn % Row Count 22 (+ 2) % Row 11 \SetRowColor{white} {[}{[}:blank:{]}{]} & Spacja i tabulacja \tn % Row Count 24 (+ 2) % Row 12 \SetRowColor{LightBackground} {[}{[}:space:{]}{]} & Białe znaki \tn % Row Count 26 (+ 2) % Row 13 \SetRowColor{white} {[}{[}:cntrl:{]}{]} & Znaki kontrolne \tn % Row Count 28 (+ 2) % Row 14 \SetRowColor{LightBackground} {[}{[}:\textless{}:{]}{]} & Początek wyrazu \tn % Row Count 29 (+ 1) % Row 15 \SetRowColor{white} {[}{[}:\textgreater{}:{]}{]} & Koniec wyrazu \tn % Row Count 30 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{1.04 cm} x{6.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Grupy znaków Unicode}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Główne grupy znaków Unicode}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \textbackslash{}pC & Znaki niewidoczne i nieużywane (kody bez znaków) \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \textbackslash{}pL & Litery \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} \textbackslash{}pN & Liczby \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} \textbackslash{}pM & Łączące znaki diakrytyczne \tn % Row Count 6 (+ 1) % Row 5 \SetRowColor{white} \textbackslash{}pP & Znaki przestankowe (nielitery i niecyfry) \tn % Row Count 8 (+ 2) % Row 6 \SetRowColor{LightBackground} \textbackslash{}pS & Symbole matematyczne, znaki walut, piktogramy, semigrafika itp. \tn % Row Count 10 (+ 2) % Row 7 \SetRowColor{white} \textbackslash{}pZ & Białe znaki \tn % Row Count 11 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{Podgrupy znaków Unicode}}} \tn % Row Count 12 (+ 1) % Row 9 \SetRowColor{white} \textbackslash{}p\{Cc\} & Znaki kontrolne \tn % Row Count 14 (+ 2) % Row 10 \SetRowColor{LightBackground} \textbackslash{}p\{Cf\} & Niewidoczne znaki formatowania \tn % Row Count 16 (+ 2) % Row 11 \SetRowColor{white} \textbackslash{}p\{Cn\} & Kody bez przypisanych znaków \tn % Row Count 18 (+ 2) % Row 12 \SetRowColor{LightBackground} \textbackslash{}p\{Co\} & Znaki do użytku prywatnego \tn % Row Count 20 (+ 2) % Row 13 \SetRowColor{white} \textbackslash{}p\{Cs\} & Kody wykluczone z użytku\{\{nl\}\}(dot. kompatybilności z UTF-16) \tn % Row Count 22 (+ 2) % Row 14 \SetRowColor{LightBackground} \textbackslash{}p\{Ll\} & Litery małe z dowolnych języków \tn % Row Count 24 (+ 2) % Row 15 \SetRowColor{white} \textbackslash{}p\{Lu\} & Litery wielkie z dowolnych języków \tn % Row Count 26 (+ 2) % Row 16 \SetRowColor{LightBackground} \textbackslash{}p\{Lo\} & Litery bez odpowiednika wielkiego/małego \tn % Row Count 28 (+ 2) % Row 17 \SetRowColor{white} \textbackslash{}p\{Lt\} & Dwuznaki o pojedynczym kodzie \tn % Row Count 30 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{p{1.04 cm} x{6.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Grupy znaków Unicode (cont)}} \tn % Row 18 \SetRowColor{LightBackground} \textbackslash{}p\{Mc\} & Łączący znak diakrytyczny o szerokości litery \tn % Row Count 2 (+ 2) % Row 19 \SetRowColor{white} \textbackslash{}p\{Me\} & Znak, w który wpisywany jest inny znak \tn % Row Count 4 (+ 2) % Row 20 \SetRowColor{LightBackground} \textbackslash{}p\{Mn\} & Łączący znak diakrytyczny wpisywany w pole innej litery \tn % Row Count 6 (+ 2) % Row 21 \SetRowColor{white} \textbackslash{}p\{Nd\} & Liczby dziesiętne \tn % Row Count 8 (+ 2) % Row 22 \SetRowColor{LightBackground} \textbackslash{}p\{No\} & Cyfry w górnym i dolnym indeksie \tn % Row Count 10 (+ 2) % Row 23 \SetRowColor{white} \textbackslash{}p\{Pc\} & Znak przestankowy łączący słowa (np. "\_") \tn % Row Count 12 (+ 2) % Row 24 \SetRowColor{LightBackground} \textbackslash{}p\{Pd\} & Dowolny myślnik lub łącznik \tn % Row Count 14 (+ 2) % Row 25 \SetRowColor{white} \textbackslash{}p\{Ps\} & Dowolny nawias otwierający \tn % Row Count 16 (+ 2) % Row 26 \SetRowColor{LightBackground} \textbackslash{}p\{Pe\} & Dowolny nawias zamykający \tn % Row Count 18 (+ 2) % Row 27 \SetRowColor{white} \textbackslash{}p\{Pi\} & Dowolny znak otwierający cytat \tn % Row Count 20 (+ 2) % Row 28 \SetRowColor{LightBackground} \textbackslash{}p\{Pf\} & Dowolny znak zamykający cytat \tn % Row Count 22 (+ 2) % Row 29 \SetRowColor{white} \textbackslash{}p\{Po\} & Pozostałe widoczne znaki niealfanumeryczne \tn % Row Count 24 (+ 2) % Row 30 \SetRowColor{LightBackground} \textbackslash{}p\{Sc\} & Symbole walut \tn % Row Count 26 (+ 2) % Row 31 \SetRowColor{white} \textbackslash{}p\{Sk\} & Znaki modyfikujące odstępy (diakryty dopisywane) \tn % Row Count 28 (+ 2) % Row 32 \SetRowColor{LightBackground} \textbackslash{}p\{Sm\} & Symbole matematyczne \tn % Row Count 30 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{p{1.04 cm} x{6.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Grupy znaków Unicode (cont)}} \tn % Row 33 \SetRowColor{LightBackground} \textbackslash{}p\{So\} & Pozostałe symbole \tn % Row Count 2 (+ 2) % Row 34 \SetRowColor{white} \textbackslash{}p\{Zl\} & Separator wiersza (U+2028) \tn % Row Count 4 (+ 2) % Row 35 \SetRowColor{LightBackground} \textbackslash{}p\{Zp\} & Separator akapitu (U+2029) \tn % Row Count 6 (+ 2) % Row 36 \SetRowColor{white} \textbackslash{}p\{Zs\} & Niewidoczny znak mający pewną szerokość \tn % Row Count 8 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}