Ekstrakcja lub walidacja danych to ważny aspekt każdego języka programowania. Jednym z najpopularniejszych sposobów sprawdzania poprawności danych jest używanie wyrażeń regularnych. używa tychwyrażenia regularne opisujące wzorzec znaków. Ten artykuł na temat Java Regex wypisze różne metody używania wyrażeń w następującej kolejności:
- Co to są wyrażenia regularne?
- Co to jest Java Regex?
- Klasa dopasowująca
- Klasa wzoru
- Klasa znaków Regex
- Kwantyfikatory wyrażeń regularnych
- Metaznaki Regex
Zacznijmy!
Co to są wyrażenia regularne?
DO Wyrażenie regularne to sekwencja znaków tworząca wzorzec wyszukiwania. Podczas wyszukiwania danych w tekście możesz użyć tego wzorca wyszukiwania, aby opisać to, czego szukasz.
Wyrażeniem regularnym może być pojedynczy znak lub bardziej skomplikowany wzór. Może być używany do wszelkiego rodzaju operacji wyszukiwania i zamiany tekstu. Wzorzec Regex składa się z prostych znaków, takich jak / abc / lub połączenie prostych i specjalnych znaków, takich jak /ABC/ lub /example(d+).d*/ .
Co to jest Java Regex?
Plik Java Regex to API, które jest używane do zdefiniować wzorzec wyszukiwania lub manipulowania . Jest szeroko stosowany do definiowania ograniczeń dotyczących ciągów znaków, takich jak hasło i weryfikacja adresu e-mail.
Istnieją różne metody korzystania z języka Java Regex. Więc przejdźmy dalej i przyjrzyjmy się różnym wyrażeniom.
Klasa dopasowująca
Ta klasa służy do wykonywania operacji dopasowywania na sekwencji znaków. Poniższa tabela przedstawia różne metody klasy Matcher.
metoda | Opis |
---|---|
dopasowania logiczne () | Sprawdza, czy dane wyrażenie regularne pasuje do wzorca |
boolean find () | Służy do znajdowania następnego wyrażenia pasującego do wzorca |
boolean find (int start) | Wyszukuje następne wyrażenie, które pasuje do wzorca z podanego numeru początkowego |
Grupa ciągów () | Służy do zwracania dopasowanego podciągu |
int start () | Zwraca początkowy indeks dopasowanego podciągu |
int end () | Zwraca końcowy indeks dopasowanego podciągu |
int groupCount () | Zwraca całkowitą liczbę dopasowanych podciągów |
Klasa wzoru
Klasa wzorca to skompilowana wersja wyrażenia regularnego, która służy do definiowania wzorca dla silnika wyrażeń regularnych.
metoda | Opis |
---|---|
statyczna kompilacja wzorca (wyrażenie regularne String) | Kompiluje podane wyrażenie regularne i zwraca wystąpienie wzorca |
Dopasowuje dopasowania (dane wejściowe CharSequence) | Służy do tworzenia dopasowania, które dopasowuje dane wejście do wzorca |
statyczne dopasowania boolowskie (ciąg regex, wejście CharSequence) | Działa jako połączenie metod kompilacji i dopasowywania. Kompiluje wyrażenie regularne i dopasowuje podane dane wejściowe do wzorca |
String [] split (dane wejściowe CharSequence) | Służy do dzielenia podanego ciągu wejściowego wokół dopasowań danego wzorca |
Wzór ciągu () | Pomaga zwrócić wzorzec wyrażenia regularnego |
Teraz weźmy mały przykład, aby zrozumieć, jak napisać wyrażenie regularne.
import java.util.regex. * public class RegexExample {public static void main (String [] args) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('Ciąg pasuje do podanego Regex - + matcher.matches ())}}
W tym przypadku wewnętrznie używa Pattern i Matcher klasy regex do przetwarzania, ale oczywiściezmniejsza liczbę linii kodu. Klasa Pattern zawiera również metodę dopasowań, która jako argument przyjmuje wyrażenie regularne i ciąg wejściowy, a po ich dopasowaniu zwraca wynik boolowski. Więc kod działa dobrze przy dopasowywaniu danych wejściowych z wyrażeniem regularnym w Javie. W związku z tym dane wyjściowe będą prawdziwe, jak pokazano poniżej.
Wynik:
prawdziwe
Przyjrzyjmy się teraz kilku innym kategoriom wyrażeń regularnych Java.
Klasa znaków Regex
Poniższa tabela przedstawia różne kombinacje klas znaków.
Klasa postaci | Opis |
---|---|
[ABC] | a, b lub c (klasa prosta) |
[^ abc] | Dowolny znak z wyjątkiem a, b lub c (negacja) |
[a-zA-Z] | od a do z lub od A do Z, włącznie (zakres) |
[a-d [m-p]] | a do d lub m do p: [a-dm-p] (suma) |
[a – z && [def]] | d, e lub f (przecięcie) |
[a – z && [^ bc]] | a do z, z wyjątkiem b i c: [ad-z] (odejmowanie) |
[a-z && [^ m-p]] | od a do z, a nie od m do p: [a-lq-z] (odejmowanie) |
Przykład:
import java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (not x or y or z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (między x, y lub z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x i y występuje więcej niż raz) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}
Kwantyfikatory wyrażeń regularnych
Kwantyfikatory określają liczbę wystąpień znaku. Poniższa tabela przedstawia różne kwantyfikatory.
jak analizować xml w java
Regex | Opis |
---|---|
X? | X występuje raz lub wcale |
X + | X występuje raz lub więcej razy |
X * | X występuje zero lub więcej razy |
X {n} | X występuje tylko n razy |
X {n,} | X występuje n lub więcej razy |
X i Z} | X występuje co najmniej y razy, ale mniej niż z razy |
Przykład:
import java.util.regex. * public class Przykład {public static void main (String args []) {System.out.println ('? quantifier ....') // (a lub y lub z pojawia się raz) System.out.println (Pattern.matches ('[ayz]?', 'A')) // output: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay i z pojawia się więcej niż jeden raz) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a występuje więcej niż jeden raz) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a lub y lub z muszą nadejść jeden raz) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // output: false System.out.println (' + quantifier .... ') // (a lub y lub z raz lub więcej razy) System.out.println (Pattern .matches ('[ayz] +', 'a')) // output: true // (a występuje więcej niż jeden raz) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a lub y lub z występuje więcej niż raz) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z it nie pasują do wzorca) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* quantifier ....') // (a lub y lub z może przyjść zero lub więcej razy ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // wyjście: prawda}}
Zasadniczo wyszuka pasujący kwantyfikator i dopasuje wynik wyszukiwania.
Metaznaki Regex
Metaznaki wyrażeń regularnych działają jako skróty. Rzućmy okiem na poniższą tabelę, aby zrozumieć różne typy metaznaków.
Regex | Opis |
---|---|
. | Może to być dowolny znak (może pasować do terminatora lub nie) |
re | Reprezentuje dowolne cyfry z wyjątkiem [0–9] |
re | Reprezentuje dowolną niecyfrową, skrót od [^ 0-9] |
s | Reprezentuje dowolny biały znak, skrót od [tnx0Bfr] |
S | Może to być znak niebędący białą spacją, skrót od [^ s] |
w | Może to być znak słowa, skrót od [a-zA-Z_0-9] |
W | Reprezentuje dowolny znak niebędący słowem, skrót od [^ w] |
b | Reprezentuje granicę słowa |
b | To nie jest granica słów |
Przykład:
import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d oznacza cyfrę System.out.println ('metaznaki d ....') // (non-cyfra) System.out.println (Pattern.matches ('d', 'abc')) // Output: false // (cyfra i przychodzi raz) System.out.println (Pattern.matches ('d', '1') ) // Output: true // (cyfra, ale pojawia się więcej niż raz) System.out.println (Pattern.matches ('d', '4443')) // Output: false // (cyfra i znak) System.out .println (Pattern.matches ('d', '323abc')) // Output: false // D oznacza niecyfrowe System.out.println ('metaznaki D ....') // (niecyfrowe, ale pojawia się więcej niż raz) System.out.println (Pattern.matches ('D', 'abc')) // Output: false // It's a Digit System.out.println (Pattern.matches ('D', '1 ')) // Wyjście: false System.out.println (Pattern.matches (' D ',' 4443 ')) // Wyjście: false // (cyfra i znak) System.out.println (Pattern.matches (' D ',' 323abc ')) // Wyjście: false // (niecyfrowe i pojawia się raz) System.out.println (Pattern.matches (' D ',' m ')) // Wyjście: true System.out .pr intln ('metaznaki D z kwantyfikatorem ....') // (niecyfrowe i może wystąpić 0 lub więcej razy) System.out.println (Pattern.matches ('D *', 'abc')) // Wyjście : prawdziwe } }
W oparciu o powyższe warunki wyświetli dane wyjściowe. Tak to działa. Więc to wszystko dotyczyło różnych typów Regex. W ten sposób dochodzimy do końca tego artykułu. jaMam nadzieję, że znalazłeś to pouczające. Jeśli chcesz dowiedzieć się więcej, zajrzyj do naszego także.
Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży, aby zostać oprócz tych pytań do rozmowy kwalifikacyjnej w języku Java, opracowaliśmy program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego artykułu „Java Regex”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.