Wyrażenia regularne

Czym są wyrażenia regularne?

Wyrażenia regularne umożliwiają identyfikację łańcuchów tekstu, na przykład określonych znaków, słów lub wzorców znaków.  W narzędziu Model Review są one najczęściej wykorzystywane do przestrzegania konwencji nazewnictwa lub do przeglądania opisów w modelu projektu w przypadku szczególnych informacji.

Znaki specjalne

W wyrażeniach regularnych wykorzystywane są znaki specjalne zapewniające większą elastyczność w definiowaniu dopasowań. „Znaki specjalne” to:

+ * ? . [ ] ^ ( ) | \

W następujących sekcjach opisano sposób użycia każdego ze znaków specjalnych:

Kropka

Kropka (.) zostanie dopasowana do każdego pojedynczego znaku.

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

390-.

Pasuje do ciągu „390-”, po którym następuje dowolny znak.

390-A, 390-1, 390--

390-A1, 1390-1

Wersja . Swobodny

Pasuje do ciągu „WERSJA”, po którym następuje dowolny znak, a następnie ciąg „Data wydania”

Wersja A Data wydania

Wersja 1 Data wydania

Wersja # Data wydania

Wersja A1 Data wydania

WersjaAData wydania

Nawiasy kwadratowe

Nawiasy kwadratowe („[ ]”) definiują klasę znaków, która dopasowuje dowolny pojedynczy znak do znaków w nawiasach. Wewnątrz nawiasów tracą swoje znaczenie wszystkie znaki specjalne z wyjątkiem znaku „^”, który, gdy zostanie użyty jako pierwszy znak w nawiasach, oznacza, że określone znaki NIE mają być dopasowane.

Wewnątrz nawiasów kwadratowych można także używać zakresów.

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

[akm]

Jeden znak: a, k lub m.

A, K, M

Akm, ak, G

[a-z]

Dowolna litera

A, b, c, d

1, 2, -, #

[^akm]

Jeden znak, pod warunkiem, że NIE jest to a, k ani m.

C, f, G,

Am (ponieważ są to dwa znaki)

A, k, m

[0-9]

Dowolna cyfra

0, 4, 7

A, #, z

[a-z][a-z]

Dowolne dwie litery

AB, BC, DE

A (tylko jedna litera)

A1

12

Gwiazdka

Gwiazdka („*”) następuje po wyrażeniu i wskazuje, że poprzednie wyrażenie może wystąpić zero lub więcej razy.

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

Ab*c

Znak „A”, po którym następuje zero lub więcej liter b, a na końcu znajduje się C.

Ac

Abc

Abbbbbbbc

Bbb

Abcd

[a-z]*

Dowolna liczba liter (oznacza, że mają to być tylko litery, ale obejmuje również zerową liczbę liter)

A

Bob

AAAAA

Stal

<Puste> (ponieważ * może oznaczać zerową ilość wystąpień)

STAL230

12

AA-##

Znak plus

Znak plus („+”) następuje po wyrażeniu i wskazuje, że poprzednie wyrażenie może wystąpić jeden lub więcej razy.

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

Ab+c

Znak „A”, po którym następuje jedna lub więcej liter b, a na końcu znajduje się C.

Abc

Abbbbbbbc

Ac

Bbb

Abcd

[a-z]+

Dowolna liczba dowolnych liter (oznacza, że mają to być tylko litery)

Bob

AAAAA

Stal

STAL230

12

AA-##

<puste>

Pytajnik

Znak zapytania (?) następujące wyrażenie, aby wskazać, że poprzednie wyrażenie jest opcjonalne.

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

Ab?c

Znak „A”, po którym następuje opcjonalnie litera „b”, a na końcu C.

Ac

Abc

Abbc

Abcd

390-[a-z][a-z]?

Ciąg znaków „390-”, po którym następuje litera oraz druga opcjonalna litera.

390-A

390-AB

390-11

390-

390-ABC

Kreska pionowa

Znak kreski pionowej („|”) działa jak operator OR (lub) między dwoma wyrażeniami (zazwyczaj zamkniętymi w nawias).

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

(390|241)-[a-z]+

Ciągi znaków „390” lub „241”, po których występuje znak „-” i co najmniej jedna litera.

390-A

241-A

241-AB

200-A

241

241-

Według (MS2377|CS123)

Ciąg znaków „Według”, po którym następuje ciąg znaków „MS2377” lub „CS123”

Według MS2377

Według CS123

Według

Według MS3222

 

390-([abc]|[123])

Ciąg znaków „390-”, po którym następuje litera „a”, „b” lub „c” LUB cyfra „1”, „2” lub „3”.

390-A

390-3

390-F

390-

Ukośnik lewy obejmujący znaki specjalne

Jeśli trzeba wykonać dopasowanie do znaku, który jest „znakiem specjalnym”, ukośnik lewy przed tym znakiem specjalnym informuje narzędzie Model Review, że znak należy traktować dosłownie (a nie jako znak specjalny).

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

[0-9]\+

Liczba po znaku a „+”.

1+

2+

1

A

1+1

Co\?

Ciąg znaków „Co”, po którym następuje pytajnik.

Co?

Co się dzieje?

Ukośnik lewy Zaczyna się / Kończy się

Często wykonywanym zadaniem w narzędziu Model Review jest „rozpoczęcie” od określonej wartości lub „zakończenie” na niej. Ta składnia jest jedyną różnicą w porównaniu z wyrażeniami regularnymi służącymi do wyszukiwania. Zaleca się, aby użyć znaku ".*" lub ".+" z przodu lub z tyłu wyrażenia, aby wskazać znaki, od których rozpoczyna się ono lub kończy.

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

390-.*

Rozpoczyna się od ciągu znaków „390-” (kończy się dowolnym znakiem & endash;, w tym pustym).

390-1

390-111

1390-1

390-.+

Zaczyna się od ciągu znaków „390-” (kończy dowolnym znakiem, ale musi to być przynajmniej jeden znak).

390-1

390-111

1390-1

390-

.*-[a-z]

Kończy się znakiem „-” i literą (zaczyna dowolnym znakiem, również pustym).

Wersja-A

Wer-A

-A

Wersja-A1

Wer-1

123

–1

.+-[a-z]

Kończy się znakiem „-” i literą (zaczyna dowolnym znakiem, ale musi być przynajmniej jeden).

Wersja-A

Wer-A

Wersja-A1

Wer-1

123

–1

-A

Podsumowanie

Wyrażenia regularne to bardzo skuteczne (choć nieco skomplikowane) narzędzie do dopasowywania tekstu. Aby sprostać bardziej złożonym wymaganiom, niezbędne może być łączenie wielu wyrażeń w jedno złożone.

Poniżej podano przykłady złożonych wyrażeń:

Wyrażenie

Znaczenie

Pasuje

Nie pasuje

[0-9]+[-]?[0-9]+

Liczby z opcjonalnym myślnikiem między nimi.

123-45

12345

12A32

1232-A

A

.*[^_]

Nie może kończyć się podkreśleniem (_).

123324

PART1

12343_

(390|231)-[a-z0-9]+-[0-9]+

Ciągi znaków 390 lub 231, po których występuje znak „-”, sekcja alfanumeryczna z przynajmniej jednym znakiem, potem „-” i przynajmniej jedna cyfra.

390-mypart-1

231-bracket-99

120-mypart-1

380- -