Wat zijn reguliere expressies in Java?

In Java is Regex of Reguliere expressie een applicatieprogramma-interface die helpt bij het definiëren van een patroon om tekenreeksen te zoeken, manipuleren en bewerken. Java reguliere expressies worden veel gebruikt bij de validatie van wachtwoorden en e-mails. Deze expressies worden geleverd door het pakket java.util.regex en bestaan ​​uit 1 interface en 3 klassen.

De drie klassen zijn:

  1. Patroon: helpt bij het definiëren van patronen.
  2. Matcher: het gebruik van patronen helpt bij het uitvoeren van matchoperaties.
  3. PatternSyntaxException: helpt bij het aangeven van een syntaxisfout.

Java Regex heeft één interface die bekend staat als MatchResultInterface die helpt bij het bepalen van het resultaat van de overeenkomst van de reguliere expressie.

Syntaxis van reguliere expressie in Java

Laten we nu eens kijken hoe we een reguliere expressie in Java kunnen schrijven met behulp van een programma.

Code:

//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);
) )

Output:

Veelgebruikte methoden in reguliere expressies

Er zijn 3 veelgebruikte methoden in reguliere expressies. Zij zijn,

1. Indexmethoden

Indexmethoden bieden indexwaarden die helpen om precies te laten zien waar de overeenkomst is gevonden in de string die als invoer is opgegeven.

Methode Beschrijving
begin()De startindex van de vorige wedstrijd wordt geretourneerd.
start (int groep)Gegeven de vorige matchoperatie van de groep wordt de opname vastgelegd en teruggestuurd.
einde()Offset na het matchen van het laatste karakter wordt geretourneerd.
Einde (int groep)Gegeven de vorige matchbewerking van de groep wordt de reeks vastgelegd en gecompenseerd na het matchen van het laatst teruggekeerde karakter.

2. Studiemethoden

Studiemethoden controleren de tekenreeks die als invoer is opgegeven en een Booleaanse waarde wordt geretourneerd om aan te geven of het patroon is gevonden of niet.

Methode Beschrijving
kijken naar()Vergelijk de gegeven volgorde als invoer met het patroon vanaf het begin van de regio.
vind()Hiermee wordt de volgende deelreeks van de reeks gevonden die wordt ingevoerd als invoer tegen het patroon vanaf het begin van de regio.
find (int start)Reset de matcher en vindt vervolgens de volgende reeks van de reeks die als invoer wordt gegeven tegen het patroon uit de opgegeven index.
wedstrijden()Hiermee wordt inhoud vergeleken met het patroon.

3. Vervangingsmethoden

Methoden die worden gebruikt om tekst in een string te vervangen.

Methode Beschrijving
appendReplacement (StringBuffer s, Stringvervanging)Een niet-terminale append- en vervangingsstap wordt geïmplementeerd.
appendTail (StringBuffer s)Er wordt een terminal toegevoegd en een vervangingsstap uitgevoerd.
replaAll (Stringvervanging)Vervang alle deelreeksen van de reeks die als invoer wordt gegeven en overeenkomt met het patroon door een vervangende string.
quoteReplacement (String s)Een letterlijke vervangende string zal worden geretourneerd voor de genoemde string.
replaFirst (Stringvervanging)Vervang de eerste deelreeks van de reeks die wordt ingevoerd als invoer die overeenkomt met het patroon door een vervangende string.

Hoe reguliere expressie in Java te definiëren?

Er zijn verschillende manieren waarop een reguliere expressie kan worden gedefinieerd. Zij zijn:

1. Literalen

Stel dat een string "hai" moet worden gezocht in een tekst "hai". Dit kan met behulp van de syntaxis.

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

2. Karakterklassen

Het komt overeen met elk afzonderlijk teken in de tekst die wordt ingevoerd als invoer tegen meerdere toegestane tekens in de tekenklasse. Hierna volgen de verschillende klassenconstructies.

Karakterklasse Uitleg
(PQR)Komt overeen met de tekst als deze p, q of r bevat en deze slechts één keer mag zijn.
(PQR)geeft de ontkenning aan en daarom worden hier één teken behalve p, q of r genomen.
(A-zA-Z)a tot z en A tot Z worden beschouwd.
(Ad (ps))a tot d, of p tot s.
(A-dm-p)Unie van beide reeksen.
(Az && (PQR))a tot z en (p, q of r).
(Az && (pq))a tot z en ook p, q worden niet beschouwd.
(dissel)Voert de aftrekking uit.
(Az && (mp))a tot z en niet m tot p.

3. Metatekens

Metatekens werken als shortcodes in de reguliere expressie. Hier volgen enkele van de meest gebruikte metatekens.

Reguliere expressie Uitleg
\ dElk cijfer van 0 tot 9. Het kan ook worden geschreven als (0-9).
\ DElk niet-cijfer van 0 tot 9. Het kan ook worden geschreven als (0-9).
\ sWitruimte-teken of (\ t \ n \ x0B \ f \ r).
\ SNiet-witruimte-teken of (\ s).
\ wWoordteken of (a-zA-Z_0-9).
\ wNiet-woordteken of (\ w).
\ bWoordgrens.
\ BNiet-woordgrens.

4. Kwantificatoren

Kwantificatoren vermelden het aantal keren dat elk teken overeenkomt met de tekenreeks.

Reguliere expressie Uitleg
een?Komt eenmalig of helemaal niet voor.
EEN*A komt 0 of meer keer voor.
A +A komt 1 of meerdere keren voor.
Een)A komt precies n keer voor.
Een, )A komt voor n of meer dan dat.
A (n, m)A komt ten minste n keer voor maar mag niet meer dan m keer zijn.

Hoe maak je reguliere expressie in Java?

Laten we nu een Java-programma bekijken met de bovengenoemde reguliere expressies.

Code:

//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
)
)

Output:

Conclusie

Java Reguliere Expressies worden veel gebruikt voor realtime applicaties zoals wachtwoord- en e-mailverificatie. Deze uitdrukkingen zijn API's die patronen definiëren en zoeken, bewerken en verschillende andere bewerkingen in de string aanbieden.

Aanbevolen artikelen

Dit is een handleiding voor reguliere expressies in Java. Hier bespreken we hoe u methoden voor reguliere expressies in Java kunt maken, definiëren en gebruiken. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Top 3 beste compilers op Java
  2. Reguliere uitdrukkingen in JavaScript - Eigenschappen en methoden
  3. Java-appontwikkeling
  4. Matrixmethoden in Java met voorbeelden
  5. Regex-functies in Python (voorbeeld)