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:
- Wzór: Pomaga w definiowaniu wzorów.
- Matcher: Używanie wzorców pomaga w wykonywaniu operacji dopasowania.
- 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 |
\re | Każda cyfra od 0 do 9. Można ją również zapisać jako (0–9). |
\RE | Dowolna cyfra od 0 do 9. Można ją również zapisać jako (0-9). |
\ s | Znak spacji lub (\ t \ n \ x0B \ f \ r). |
\ S | Znak spacji lub (\ s). |
\ w | Znak słowny lub (a-zA-Z_0-9). |
\ W | Znak inny niż słowo lub (\ w). |
\b | Granica słowa. |
\B | Granica 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 -
- 3 najlepsze kompilatory w Javie
- Wyrażenia regularne w JavaScript - właściwości i metody
- Programowanie aplikacji Java
- Metody tablic w Javie z przykładami
- Funkcje wyrażenia regularnego w języku Python (przykład)