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:
- Mønster: Hjælper med at definere mønstre.
- Matcher: Brug af mønstre, hjælper med at udføre kamphandlinger.
- 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 |
\ d | Ethvert ciffer fra 0 til 9. Det kan også skrives som (0-9). |
\ D | Ethvert ikke-cifret fra 0 til 9. Det kan også skrives som (0-9). |
\ s | Whitespace-tegn eller (\ t \ n \ x0B \ f \ r). |
\ S | Ikke-mellemrumstegn eller (\ s). |
\ w | Word-tegn eller (a-zA-Z_0-9). |
\ W | Ikke-ordtegn eller (\ w). |
\ b | Ordgrænse. |
\ B | Ikke-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 -
- Top 3 bedste compilere i Java
- Regelmæssige udtryk i JavaScript - Egenskaber og metoder
- Java-appudvikling
- Array-metoder i Java med eksempler
- Regex-funktioner i Python (eksempel)