Wyrażenia regularne

Poniższa tabela zawiera wyrażenia regularne, których można użyć przy tworzeniu słownika dla własnego języka.

Uwaga:

  1. Aby użyć symbolu wyrażenia regularnego jako normalnego znaku, należy go poprzedzić znakiem ukośnika (\). Na przykład: [t-v]x+ pasuje do słów tx, txx, txx itp., ux, uxx itp., ale \[t-v\]x+ pasuje do słów [t-v]x, [t-v]xx, [t-v]xxx itp.
  2. Aby pogrupować elementy wyrażenia regularnego, użyj nawiasów. Na przykład (a|b)+|c pasuje do c i kombinacji typu abbbaaabbb, ababab itp. (słowo dowolnej długości, w którym może zawierać się dowolna liczba liter a i b w dowolnej kolejności), a a|b+|c pasuje do a, c, oraz b, bb, bbb itp.

Przykłady

Załóżmy, że trzeba rozpoznać tabelę z trzema kolumnami: daty urodzin, nazwiska oraz adresy e-mail. W takim przypadku można utworzyć dwa nowe języki, Data i Adres, oraz zdefiniować dla nich następujące wyrażenia regularne.

Wyrażenie regularne dla dat:

Liczba oznaczająca dzień może się składać z jednej cyfry (1, 2 itp.) lub z dwóch cyfr (02, 12), ale nie może być zerem (00 lub 0). Wyrażenie regularne pasujące do numeru dnia powinno wyglądać następująco: ((|0)[1-9])|([1|2][0-9])|(30)|(31).

Wyrażenie regularne pasujące do numeru miesiąca: ((|0)[1-9])|(10)|(11)|(12).

Wyrażenie regularne pasujące do numeru roku: ([19][0-9][0-9]|([0-9][0-9])|([20][0-9][0-9]|([0-9][0-9]).

Należy jeszcze połączyć te wyrażenia w jedno i oddzielić liczby kropką (jak w przykładzie: 1.03.1999). Kropka jest znakiem wyrażenia regularnego, więc należy przed nią wstawić znak ukośnika (\). Kompletne wyrażenie regularne przybierze wtedy następującą formę:

((|0)[1-9])|([1|2][0-9])|(30)|(31)\.((|0)[1-9])|(10)|(11)|(12)\.((19)[0-9][0-9])|([0-9][0-9])|([20][0-9][0-9]|([0-9][0-9])

Wyrażenie regularne dla adresów e-mail:

[a-zA-Z0-9_\-\.]+\@[a-z0-9\.\-]+

14.01.2020 17:26:20

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.