Groovy - Wyrażenia regularne
Wyrażenie regularne to wzorzec używany do znajdowania podciągów w tekście. Groovy obsługuje wyrażenia regularne natywnie przy użyciu wyrażenia ~ ”regex”. Tekst zawarty w cudzysłowie przedstawia wyrażenie do porównania.
Na przykład możemy utworzyć obiekt wyrażenia regularnego, jak pokazano poniżej -
def regex = ~'Groovy'
Gdy operator Groovy = ~ pojawia się jako predykat (wyrażenie zwracające wartość logiczną) w if i whileinstrukcji (patrz rozdział 8), operand String po lewej stronie jest dopasowywany do operandu wyrażenia regularnego po prawej stronie. W związku z tym każdy z poniższych elementów dostarcza wartość true.
Podczas definiowania wyrażenia regularnego można używać następujących znaków specjalnych -
Istnieją dwa specjalne znaki pozycyjne, które służą do oznaczenia początku i końca wiersza: daszek (∧) i znak dolara ($).
Wyrażenia regularne mogą również zawierać kwantyfikatory. Znak plus (+) reprezentuje jeden lub więcej razy, zastosowany do poprzedniego elementu wyrażenia. Gwiazdka (*) oznacza zero lub więcej wystąpień. Znak zapytania (?) Oznacza zero lub raz.
Metaznak {i} służy do dopasowania określonej liczby wystąpień poprzedniego znaku.
W wyrażeniu regularnym kropka (.) Może reprezentować dowolny znak. Jest to opisane jako znak wieloznaczny.
Wyrażenie regularne może zawierać klasy znaków. Zestaw znaków można podać jako prostą sekwencję znaków zawartą w metaznakach [i], jak w [aeiou]. W przypadku zakresów liter lub cyfr można użyć separatora myślnika, takiego jak [a – z] lub [a – mA – M]. Uzupełnienie klasy znaków jest oznaczane przez wiodącą karetkę wewnątrz kwadratowych rakiet, jak w [∧a – z] i reprezentuje wszystkie znaki inne niż określone. Poniżej podano kilka przykładów wyrażeń regularnych
'Groovy' =~ 'Groovy'
'Groovy' =~ 'oo'
'Groovy' ==~ 'Groovy'
'Groovy' ==~ 'oo'
'Groovy' =~ '∧G'
‘Groovy' =~ 'G$'
‘Groovy' =~ 'Gro*vy' 'Groovy' =~ 'Gro{2}vy'