Hvad er regelmæssige udtryk i Java?

I Java er Regex eller Regular Expression en applikationsprogramgrænseflade, der hjælper med at definere et mønster for at søge, manipulere og redigere strenge. Regelmæssige Java-udtryk bruges i vid udstrækning til validering af adgangskoder og e-mails. Disse udtryk leveres af java.util.regex-pakken og består af 1 interface og 3 klasser.

De tre klasser er:

  1. Mønster: Hjælper med at definere mønstre.
  2. Matcher: Brug af mønstre, hjælper med at udføre kamphandlinger.
  3. PatternSyntaxException: Hjælper med at indikere en syntaksfejl.

Java Regex har en grænseflade kendt som MatchResultInterface, der hjælper med at bestemme det regulære udtryks matchresultat.

Syntaks for regelmæssig ekspression i Java

Lad os nu se, hvordan man skriver et regelmæssigt udtryk i Java ved hjælp af et program.

Kode:

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

Produktion:

Almindeligt anvendte metoder i almindelige udtryk

Der er 3 ofte anvendte metoder i almindelige udtryk. De er,

1. Indeksmetoder

Indeksmetoder tilbyder indeksværdier, der hjælper med præcist at vise, hvor matchen blev fundet i den streng, der er angivet som input.

Metode Beskrivelse
Start()Den forrige kamps startindeks returneres.
start (int-gruppe)I betragtning af gruppens forrige kamphandling fanges og returneres efterfølgende.
ende()Offset efter matchning af det sidste tegn returneres.
Slut (int-gruppe)I betragtning af gruppens forrige kamphandling fanges og opvejes efterfølgende efter matchning af dets sidste karakter returneret.

2. Undersøgelsesmetoder

Undersøgelsesmetoder kontrollerer den streng, der er angivet som input, og der returneres en boolsk værdi, der angiver, om mønsteret findes eller ej.

Metode Beskrivelse
ser på()Match den sekvens, der er angivet som input mod mønsteret fra begyndelsen af ​​regionen.
Find()Finder den næste rækkefølge af sekvensen, der gives som input mod mønsteret fra begyndelsen af ​​regionen.
find (int start)Nulstiller matcheren og finder derefter den næste rækkefølge af sekvensen, der gives som input mod mønsteret fra det specificerede indeks.
Tændstikker()Matcher indholdet mod mønsteret.

3. Udskiftningsmetoder

Metoder, der bruges til at erstatte tekst i en streng.

Metode Beskrivelse
appendReplacement (StringBuffer s, udskiftning af streng)Et ikke-terminal tilføjelses- og udskiftningstrin implementeres.
appendTail (StringBuffer s)Et terminaltillæg og udskiftningstrin implementeres.
erstatteAlle (Strengeudskiftning)Udskift al sekvens af sekvensen, der er angivet som input, der matcher mønsteret med en erstatningsstreng.
quoteReplacement (streng)En bogstavelig udskiftningssnor returneres for den nævnte streng.
erstatte første (strengudskiftning)Udskift den første sekvens af sekvensen, der er angivet som input, der matcher mønsteret med en erstatningsstreng.

Hvordan defineres regelmæssig ekspression i Java?

Der er flere måder, hvorpå et regulært udtryk kan defineres. De er:

1. Bogstaver

Antag, at en streng "hai" skal søges i en tekst "hai". Det kan gøres ved hjælp af syntaks.

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

2. Karakterklasser

Det matcher hvert enkelt tegn i teksten, der gives som input mod flere tilladte tegn i karakterklassen. Følgende er de forskellige klassekonstruktioner.

Karakterklasse Forklaring
(Pqr)Tilsvarer teksten, hvis den indeholder enten p, q eller r, og den skal kun være én gang.
(Pqr)betegner negationen og på grund af dette tages her enkelt tegn undtagen p, q eller r.
(A-zA-Z)a til z og A til Z overvejes.
(Ad (ps))a til d eller p til s.
(A-dm-p)Forening af begge intervaller.
(Az && (pqr))a til z og (p, q eller r).
(Az && (pq))a til z og p, q betragtes heller ikke.
(Ad-z)Udfører subtraktionen.
(Az && (mp))a til z og ikke m til p.

3. Metacharacters

Metategn fungerer som kortkoder i det regulære udtryk. Følgende er nogle af de almindeligt anvendte metategn.

Almindelig udtryk Forklaring
\ dEthvert ciffer fra 0 til 9. Det kan også skrives som (0-9).
\ DEthvert ikke-cifret fra 0 til 9. Det kan også skrives som (0-9).
\ sWhitespace-tegn eller (\ t \ n \ x0B \ f \ r).
\ SIkke-mellemrumstegn eller (\ s).
\ wWord-tegn eller (a-zA-Z_0-9).
\ WIkke-ordtegn eller (\ w).
\ bOrdgrænse.
\ BIkke-ordgrænse.

4. Kvantificatorer

Kvantificatorer nævner antallet af forekomster af hver karakter, der skal matche mod strengen.

Almindelig udtryk Forklaring
en?Forekommer en gang eller slet ikke.
EN*A forekommer 0 eller flere gange.
A +A forekommer 1 eller flere gange.
A (n)A forekommer nøjagtigt n gange.
A (n, )A forekommer n eller mere end det.
A (n, m)A forekommer mindst n gange, men det bør ikke være mere end m gange.

Sådan oprettes regelmæssig ekspression i Java?

Lad os nu se et java-program med de ovennævnte regelmæssige udtryk.

Kode:

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

Produktion:

Konklusion

Java Regular Expressions er meget brugt til realtidsapplikationer som adgangskode og e-mail-verifikation. Disse udtryk er API'er, der definerer mønstre og tilbyder søgning, redigering og flere andre operationer i strengen.

Anbefalede artikler

Dette er en guide til regulære udtryk i Java. Her diskuterer vi, hvordan man opretter, hvordan man definerer og ofte anvendte metoder til regulære udtryk i java. Du kan også se på de følgende artikler for at lære mere -

  1. Top 3 bedste compilere i Java
  2. Regelmæssige udtryk i JavaScript - Egenskaber og metoder
  3. Java-appudvikling
  4. Array-metoder i Java med eksempler
  5. Regex-funktioner i Python (eksempel)

Kategori: