
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)