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:
- Mønster: Hjelper med å definere mønstre.
- Matcher: Bruk av mønstre, hjelper deg med å utføre kampoperasjoner.
- 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 |
\ d | Ethvert siffer fra 0 til 9. Det kan også skrives som (0-9). |
\ D | Ethvert ikke-sifret fra 0 til 9. Det kan også skrives som (0-9). |
\ s | Whitespace-tegn eller (\ t \ n \ x0B \ f \ r). |
\ S | Ikke-mellomromstegn eller (\ s). |
\ w | Word-karakter eller (a-zA-Z_0-9). |
\ W | Ikke-ordtegn eller (\ w). |
\ b | Ordgrense. |
\ B | Grense 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 -
- Topp 3 beste kompilatorer i Java
- Vanlige uttrykk i JavaScript - Egenskaper og metoder
- Java-apputvikling
- Array metoder i Java med eksempler
- Regex-funksjoner i Python (eksempel)