Jakie są wyrażenia regularne w Javie?

W Javie Regex lub wyrażenie regularne to interfejs programu aplikacji, który pomaga w definiowaniu wzorca w celu wyszukiwania, manipulowania i edytowania ciągów. Wyrażenia regularne Java są szeroko stosowane w sprawdzaniu poprawności haseł i wiadomości e-mail. Wyrażenia te są dostarczane przez pakiet java.util.regex i składają się z 1 interfejsu i 3 klas.

Te trzy klasy to:

  1. Wzór: Pomaga w definiowaniu wzorów.
  2. Matcher: Używanie wzorców pomaga w wykonywaniu operacji dopasowania.
  3. PatternSyntaxException: Pomaga we wskazaniu błędu składniowego.

Java Regex ma jeden interfejs znany jako MatchResultInterface, który pomaga w określeniu wyniku operacji dopasowania wyrażenia regularnego.

Składnia wyrażeń regularnych w Javie

Zobaczmy teraz, jak napisać wyrażenie regularne w Javie za pomocą programu.

Kod:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
) )

Wynik:

Często używane metody w wyrażeniach regularnych

Istnieją 3 często używane metody w wyrażeniach regularnych. Oni są,

1. Metody indeksu

Metody indeksowania oferują wartości indeksów, które pomagają w dokładnym pokazaniu, gdzie znaleziono dopasowanie w ciągu podanym jako dane wejściowe.

metoda Opis
początek()Indeks początkowy poprzedniego meczu jest zwracany.
start (int group)Biorąc pod uwagę poprzednie dopasowanie grupy, podsekwencja jest przechwytywana i zwracana.
koniec()Przesunięcie po dopasowaniu ostatniego znaku jest zwracane.
End (int group)Biorąc pod uwagę poprzednie dopasowanie grupy, podsekwencja jest przechwytywana i kompensowana po dopasowaniu jej ostatniego zwróconego znaku.

2. Metody badań

Metody badawcze sprawdzają ciąg podany jako dane wejściowe i zwracana jest wartość logiczna wskazująca, czy wzorzec został znaleziony, czy nie.

metoda Opis
patrzeć na()Dopasuj podaną sekwencję do wzorca z początku regionu.
odnaleźć()Znajduje kolejną podsekwencję sekwencji podaną jako dane wejściowe w stosunku do wzorca z początku regionu.
znajdź (int start)Resetuje dopasowywanie, a następnie znajduje kolejną podsekwencję sekwencji podaną jako dane wejściowe względem wzorca z określonego indeksu.
mecze()Dopasowuje zawartość do wzorca.

3. Metody wymiany

Metody stosowane do zamiany tekstu na ciąg znaków.

metoda Opis
appendReplacement (StringBuffer s, String replace)Wdrożony zostanie nieterminalny etap dołączania i wymiany.
appendTail (StringBuffer s)Zostanie wdrożony etap dołączania i wymiany terminala.
replaceAll (zamiana ciągów)Zastąp wszystkie podsekwencje sekwencji podane jako dane wejściowe pasujące do wzorca łańcuchem zastępczym.
quoteReplacement (String s)Dosłowny ciąg zastępczy zostanie zwrócony dla wspomnianego ciągu.
replaceFirst (zamiana ciągów)Zastąp pierwszą podsekwencję sekwencji podaną jako dane wejściowe pasujące do wzorca łańcuchem zastępczym.

Jak zdefiniować wyrażenie regularne w Javie?

Istnieje kilka sposobów zdefiniowania wyrażenia regularnego. Oni są:

1. Literały

Załóżmy, że ciąg „hai” należy wyszukać w tekście „hai”. Można to zrobić przy użyciu składni.

Pattern.matches("hai", "hai")

2. Klasy postaci

Dopasowuje każdy pojedynczy znak w tekście podanym jako dane wejściowe do wielu dozwolonych znaków w klasie znaków. Poniżej przedstawiono różne konstrukcje klas.

Klasa postaci Wyjaśnienie
(pqr)Dopasowuje tekst, jeśli zawiera p, q lub r, i powinien być tylko raz.
(pqr)oznacza negację i dlatego pobierany jest tutaj pojedynczy znak z wyjątkiem p, q lub r.
(a-zA-Z)brane są pod uwagę od a do z oraz od A do Z.
(reklama (ps))od a do d lub od p do s.
(a-dm-p)Połączenie obu zakresów.
(az && (pqr))od a do z oraz (p, q lub r).
(az && (pq))od a do z, a także p, q nie są brane pod uwagę.
(ad-z)Wykonuje odejmowanie.
(az && (mp))od a do z, a nie od m do p.

3. Metaznaki

Metaznaki działają jak skróty w wyrażeniu regularnym. Oto niektóre z najczęściej używanych metaznaków.

Wyrażenie regularne Wyjaśnienie
\reKażda cyfra od 0 do 9. Można ją również zapisać jako (0–9).
\REDowolna cyfra od 0 do 9. Można ją również zapisać jako (0-9).
\ sZnak spacji lub (\ t \ n \ x0B \ f \ r).
\ SZnak spacji lub (\ s).
\ wZnak słowny lub (a-zA-Z_0-9).
\ WZnak inny niż słowo lub (\ w).
\bGranica słowa.
\BGranica bez słów.

4. Kwantyfikatory

Kwantyfikatory wspominają liczbę wystąpień każdego znaku pasującego do łańcucha.

Wyrażenie regularne Wyjaśnienie
za?Występuje raz lub wcale.
ZA*A występuje 0 lub więcej razy.
A +Występuje 1 lub więcej razy.
Na)A występuje dokładnie n razy.
Na, )A występuje n lub więcej.
A (n, m)A występuje co najmniej n razy, ale nie powinno być więcej niż m razy.

Jak utworzyć wyrażenie regularne w Javie?

Zobaczmy teraz program Java z wyżej wymienionymi wyrażeniami regularnymi.

Kod:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("(Hh)ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("(aA)nn|(jJ)ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^(^\\d).*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^(^\\d).*", "anna9448")); //True
)
)

Wynik:

Wniosek

Wyrażenia regularne Java są szeroko stosowane w aplikacjach w czasie rzeczywistym, takich jak weryfikacja hasła i adresu e-mail. Wyrażenia te są interfejsami API, które definiują wzorce i oferują wyszukiwanie, edycję i kilka innych operacji w ciągu.

Polecane artykuły

Jest to przewodnik po wyrażeniach regularnych w Javie. Tutaj omawiamy sposób tworzenia, definiowania i powszechnie używanych metod wyrażeń regularnych w Javie. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. 3 najlepsze kompilatory w Javie
  2. Wyrażenia regularne w JavaScript - właściwości i metody
  3. Programowanie aplikacji Java
  4. Metody tablic w Javie z przykładami
  5. Funkcje wyrażenia regularnego w języku Python (przykład)