Składniki wyrażeń regularnych

Wyrażenia regularne używane przy wyszukiwaniu i zasadach segmentacji są takie same, jak obsługiwane przez Javę. Jeśli potrzebujesz bardziej szczegółowych informacji, sprawdź na stronie http://java.sun.com/j2se/1.5/docs/api/java/util/regex/Pattern.html. Patrz dodatkowe informacje i przykłady poniżej. 

Flagi

Znaki

Cytowanie

Bloki i klasy Unicode

Klasy znaków

Predefiniowane klasy znaków

Zakotwiczenia

Kwantyfikatory zachłanne

Kwantyfikatory niezachłanne (leniwe)

Operatory logiczne

Narzędzia wyrażeń regularnych i przykłady użycia

    

 


Składnik

Znaczenie:


Flagi

(?i)

Uaktywnia dopasowywanie bez uwzględniania wielkości liter (domyślnie wzorzec uwzględnia wielkość liter).


Znaki

x

Znak x, z wyjątkiem następujących...

\uhhhh

Znak w kodzie szesnastkowym 0xhhhh

\t

Znak tabulacji ('\u0009')

\n

Znak nowej linii ('\u000A')

\r

Znak powrotu karetki ('\u000D')

\f

Znak wysunięcia strony ('\u000C')

\a

Znak sygnału dźwiękowego ('\u0007')

\e

Znak escape ('\u001B')

\cx

Znak kontrolny odpowiadający x

\0n

Znak w kodzie ósemkowym 0n (0 <= n <= 7)

\0nn

Znak w kodzie ósemkowym 0nn (0 <= n <= 7)

\0mnn

Znak w kodzie ósemkowym 0mnn (0 <= m <= 3, 0 <= n <= 7)

\xhh

Znak w kodzie szesnastkowym 0xhh


Cytowanie

\

Sam jest pomijany, ale cytuje następujący po nim znak. Jest to wymagane, jeśli chcesz wprowadzić jeden ze znaków specjalnych !$()*+.<>?[\]^{|}, aby był traktowany jako znak.

\\

Na przykład, to jest znak backslash

\Q

Sam jest pomijany, ale cytuje wszystkie znaki aż do \E

\E

Sam jest pomijany, ale kończy cytowanie rozpoczęte przez \Q


Bloki i klasy Unicode

\p{InGreek}

Dowolny znak należący do bloku Greek (prosty blok)

\p{Lu}

Dowolna duża litera (prosta klasa)

\p{Sc}

Symbol waluty

\P{InGreek}

Dowolny znak poza znakami należącymi do bloku Greek (negacja)

[\p{L}&&[^\p{Lu}]]

Dowolna litera poza dużymi literami (odejmowanie)


Klasy znaków

[abc]

a, b lub c (prosta klasa)

[^abc]

Dowolny znak z wyjątkiem a, b lub c (negacja)

[a-zA-Z]

Od a do z lub od A do Z, włącznie (zakres)


Predefiniowane klasy znaków

.

Dowolny znak (poza znakiem nowej linii)

\d

Cyfra: [0-9]

\D

Znak inny niż cyfra: [^0-9]

\s

Biały znak: [ \t\n\x0B\f\r]

\S

Znak inny niż biały znak: [^\s]

\w

Znak wyrazu (litera, cyfra lub podkreślenie): [a-zA-Z_0-9]

\W

Znak inny niż znak wyrazu: [^\w]


Zakotwiczenia

^

Początek linii

$

Koniec linii

\b

Granica wyrazu

\B

Znak inny niż granica wyrazu


Kwantyfikatory zachłanne

Dopasowują się do jak najdłuższego ciągu znaków. Na przykład, a+ dopasuje się do aaa w aaabbb

X?

X, jeden raz albo wcale

X*

X, zero lub więcej razy

X+

X, jeden lub więcej razy


Kwantyfikatory niezachłanne (leniwe)

Dopasowują się do jak najkrótszego ciągu znaków. Na przykład, a+? dopasuje się do pierwszego a w aaabbb

X??

X, jeden raz albo wcale

X*?

X, zero lub więcej razy

X+?

X, jeden lub więcej razy


Operatory logiczne

XY

Po X następuje Y

X|Y

X lub Y

(XY)

XY jako grupa



Narzędzia wyrażeń regularnych i przykłady użycia


Istnieje wiele dostępnych interaktywnych narzędzi do budowania i testowania wyrażeń regularnych. Wszystkie one powielają ten sam wzorzec(patrz poniżej - przykład w formie wtyczki do Firefoxa): wyrażenie regularne (na górze) analizuje przeszukiwany tekst (okno tekstowe w środku) , znajdując pasujące fragmenty, i pokazując je w oknie tekstowym Result.

regular expressions tester plug-in for FireFox

Patrz The Regex Coach w wersji dla Windows, Linux, Mac, FreeBSD jako samodzielne narzędzie, są one prawie identyczne jak powyższy przykład.

Duży zbior użytecznych przykładów wyrażeń regularnych znaleźć można w samym programie OmegaT (patrz Opcje > Ustawienia segmentacji). Poniższa lista zawiera wyrażenia, które mogą okazać się użyteczne podczas przeszukiwania pamięci tłumaczeniowej:

Wyrażenie regularne Wyszukuje:
(\b\w+\b)\s\1\b
powtórzone słowa 
[\.,]\s*[\.,]+ mieszanka przecinków i kropek
\. \s$ dodatkowe odstępy po kropce na końcu linii
\s+a\s+[aeiou]  Język angielski: słowa zaczynające się na samogłoskę powinny być poprzedzone przez "an" zamiast "a"
\s+an\s+[^aeiou]  Język angielski: to samo sprawdzenie co poprzednio, ale dla spółgłosek ("a", nie "an")
\s\s+ więcej niż jeden odstęp
\.[A-Z] brak odstępu między kropką a początkiem nowego zdania



Uwagi prawne Spis treści Indeks