Hva er vanlige uttrykk i Java?

I Java er Regex eller Regular Expression et applikasjonsprogramgrensesnitt som hjelper deg med å definere et mønster for å søke, manipulere og redigere strenger. Vanlige Java-uttrykk er mye brukt i validering av passord og e-post. Disse uttrykkene er levert av java.util.regex-pakken og består av 1 grensesnitt og 3 klasser.

De tre klassene er:

  1. Mønster: Hjelper med å definere mønstre.
  2. Matcher: Bruk av mønstre, hjelper deg med å utføre kampoperasjoner.
  3. PatternSyntaxException: Hjelper med å indikere en syntaksfeil.

Java Regex har ett grensesnitt kjent som MatchResultInterface som hjelper deg med å bestemme det vanlige uttrykkets matchningsoperasjonsresultat.

Syntaks for vanlig uttrykk i Java

La oss nå se hvordan du skriver et vanlig uttrykk i Java ved hjelp av 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);
) )

Produksjon:

Vanlig brukte metoder i vanlige uttrykk

Det er 3 ofte brukte metoder i vanlige uttrykk. De er,

1. Indeksmetoder

Indeksmetoder tilbyr indeksverdier som hjelper til med nøyaktig å vise hvor samsvaret ble funnet i strengen gitt som input.

Metode Beskrivelse
start()Startindeksen for forrige kamp returneres.
start (int gruppe)Gitt gruppens forrige kampoperasjon fanges og returneres.
slutt()Offset etter samsvar med det siste tegnet returneres.
Slutt (int-gruppe)Gitt gruppens forrige kampoperasjon blir etterfølgende fanget og utlignet etter matching av det siste tegnet som ble returnert.

2. Studiemetoder

Studiemetoder sjekker strengen gitt som inndata, og en boolsk verdi returneres som indikerer om mønsteret er funnet eller ikke.

Metode Beskrivelse
ser på()Match sekvensen som er gitt som input mot mønsteret fra begynnelsen av regionen.
finne()Finner neste sekvens av sekvensen gitt som input mot mønsteret fra begynnelsen av regionen.
finn (int start)Nullstiller matcheren og finner deretter neste sekvens av sekvensen gitt som input mot mønsteret fra den angitte indeksen.
fyrstikker()Matcher innholdet mot mønsteret.

3. Utskiftningsmetoder

Metoder som brukes til å erstatte tekst i en streng.

Metode Beskrivelse
appendReplacement (StringBuffer s, strengutskifting)Et ikke-terminal vedlegg og utskiftingstrinn vil bli implementert.
appendTail (StringBuffer s)Et terminalvedlegg og utskiftingstrinn vil bli implementert.
bytt ut alt (erstatning av streng)Bytt ut alle sekvenser av sekvensen som er gitt som input som matcher mønsteret med en erstatningsstreng.
quoteReplacement (String s)En bokstavelig erstatningsstreng vil bli returnert for den nevnte strengen.
erstatte først (strengutskifting)Bytt ut den første sekvensen av sekvensen gitt som inndata som samsvarer med mønsteret med en erstatningsstreng.

Hvordan definere vanlig uttrykk i Java?

Det er flere måter et vanlig uttrykk kan defineres på. De er:

1. Bokstavar

Anta at en streng "hai" må søkes i teksten "hai". Det kan gjøres ved hjelp av syntaks.

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

2. Karakterklasser

Det samsvarer med hvert eneste tegn i teksten gitt som inndata mot flere tillatte tegn i tegnet klassen. Følgende er de forskjellige klassekonstruksjonene.

Karakterklasse Forklaring
(Pqr)Samsvarer med teksten hvis den inneholder enten p, q eller r, og den skal bare være en gang.
(Pqr)betegner negasjonen og på grunn av dette blir her tatt enkelt tegn bortsett fra p, q eller r.
(A-zA-Z)a til z og A til Z blir vurdert.
(Ad (ps))a til d, eller p til s.
(A-dm-p)Forening av begge sortimentene.
(Az && (pqr))a til z og (p, q eller r).
(Az && (pq))a til z, og p, q er heller ikke vurdert.
(Ad-z)Utfører subtraksjonen.
(Az && (mp))a til z og ikke m til p.

3. Metategn

Metategn fungerer som kortkoder i det ordinære uttrykket. Følgende er noen av metategnene som vanligvis brukes.

Vanlig uttrykk Forklaring
\ dEthvert siffer fra 0 til 9. Det kan også skrives som (0-9).
\ DEthvert ikke-sifret fra 0 til 9. Det kan også skrives som (0-9).
\ sWhitespace-tegn eller (\ t \ n \ x0B \ f \ r).
\ SIkke-mellomromstegn eller (\ s).
\ wWord-karakter eller (a-zA-Z_0-9).
\ WIkke-ordtegn eller (\ w).
\ bOrdgrense.
\ BGrense uten ord.

4. Kvantifiserere

Kvantifiserere nevner antall forekomster av hvert tegn som skal matche mot strengen.

Vanlig uttrykk Forklaring
en?Forekommer en gang eller ikke i det hele tatt.
EN*A forekommer 0 eller flere ganger.
A +A forekommer en eller flere ganger.
A (n)A forekommer nøyaktig n ganger.
A (n, )A forekommer n eller mer enn det.
A (n, m)A forekommer minst n ganger, men det skal ikke være mer enn m ganger.

Hvordan lage vanlig uttrykk i Java?

La oss nå se et java-program med de ovennevnte vanlige uttrykk.

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

Produksjon:

Konklusjon

Java Regular Expressions er mye brukt for sanntidsapplikasjoner som passord og e-postverifisering. Disse uttrykkene er API-er som definerer mønstre og tilbyr søk, redigering og flere andre operasjoner i strengen.

Anbefalte artikler

Dette er en guide til vanlige uttrykk i Java. Her diskuterer vi hvordan du kan lage, hvordan definere og ofte brukte metoder for vanlige uttrykk i java. Du kan også se på følgende artikler for å lære mer -

  1. Topp 3 beste kompilatorer i Java
  2. Vanlige uttrykk i JavaScript - Egenskaper og metoder
  3. Java-apputvikling
  4. Array metoder i Java med eksempler
  5. Regex-funksjoner i Python (eksempel)