Vad är vanliga uttryck i Java?
I Java är Regex eller Regular Expression ett applikationsprogramgränssnitt som hjälper till att definiera ett mönster för att söka, manipulera och redigera strängar. Vanliga Java-uttryck används ofta i valideringen av lösenord och e-postmeddelanden. Dessa uttryck tillhandahålls av java.util.regex-paketet och består av 1 gränssnitt och 3 klasser.
De tre klasserna är:
- Mönster: Hjälper till att definiera mönster.
- Matcher: Att använda mönster, hjälper till att utföra matchoperationer.
- PatternSyntaxException: Hjälper till att indikera ett syntaxfel.
Java Regex har ett gränssnitt som kallas MatchResultInterface som hjälper till att bestämma det reguljära uttrycks matchningsoperationsresultat.
Syntax av reguljärt uttryck i Java
Låt oss nu se hur man skriver ett vanligt uttryck i Java med hjälp av ett program.
Koda:
//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:
Vanliga metoder i vanliga uttryck
Det finns 3 vanliga metoder i vanliga uttryck. Dom är,
1. Indexmetoder
Indexmetoder erbjuder indexvärden som hjälper till att exakt visa var matchningen hittades i strängen angiven som input.
Metod | Beskrivning |
Start() | Första matchens startindex returneras. |
start (int-grupp) | Med tanke på gruppens tidigare matchoperation fångas och returneras senare. |
slutet() | Offset efter matchning av det sista tecknet returneras. |
Slut (int-grupp) | Med tanke på gruppens tidigare matchoperation fångas upp och kompenseras efter matchning av det sista tecknet som returnerats. |
2. Studiemetoder
Studiemetoder kontrollerar strängen som ges som ingång och ett booleskt värde returneras som indikerar om mönstret hittas eller inte.
Metod | Beskrivning |
tittar på() | Matcha sekvensen som ges som inmatning mot mönstret från början av regionen. |
hitta() | Hitta nästa sekvens av sekvensen som ges som inmatning mot mönstret från början av regionen. |
hitta (int start) | Återställer matcharen och hittar sedan nästa sekvens av sekvensen som ges som inmatning mot mönstret från det angivna indexet. |
tändstickor() | Matchar innehållet mot mönstret. |
3. Ersättningsmetoder
Metoder som används för att ersätta text i en sträng.
Metod | Beskrivning |
appendReplacement (StringBuffer s, String byte) | Ett icke-terminal tilläggs- och ersättningssteg kommer att implementeras. |
appendTail (StringBuffer s) | Ett terminaltillägg och ersättningssteg kommer att implementeras. |
byt ut alla (Strängersättning) | Byt ut all sekvens av sekvensen som ges som ingång som matchar mönstret med en ersättningssträng. |
quoteReplacement (String s) | En bokstavlig ersättningssträng returneras för den nämnda strängen. |
byteFirst (Strängersättning) | Byt ut den första sekvensen av sekvensen som ges som ingång som matchar mönstret med en ersättningssträng. |
Hur definierar jag regelbundet uttryck i Java?
Det finns flera sätt på vilka ett regelbundet uttryck kan definieras. Dom är:
1. Bokstäver
Anta att en sträng "hai" måste sökas i texten "hai". Det kan göras med syntaxen.
Pattern.matches("hai", "hai")
2. Karaktärsklasser
Det matchar varje enskilt tecken i texten som ges som inmatning mot flera tillåtna tecken i teckenklassen. Följande är de olika klasskonstruktionerna.
Teckenklass | Förklaring |
(PQR) | Matchar texten om den innehåller antingen p, q eller r och den bör vara en gång. |
(PQR) | betecknar negationen och på grund av detta tas här enstaka tecken utom p, q eller r. |
(A-zA-Z) | a till z och A till Z beaktas. |
(Ad (ps)) | a till d eller p till s. |
(A-dm-p) | Förening av båda sortimenten. |
(Az && (PQR)) | a till z och (p, q eller r). |
(Az && (pq)) | a till z och p, q beaktas inte. |
(Ad-z) | Utför subtraktionen. |
(Az && (mp)) | a till z och inte m till p. |
3. Metatecken
Metatecken fungerar som kortkoder i det vanliga uttrycket. Följande är några av de metatecken som vanligtvis används.
Vanligt uttryck | Förklaring |
\ d | Alla siffror från 0 till 9. Den kan också skrivas som (0-9). |
\ D | Alla icke-siffriga från 0 till 9. Det kan också skrivas som (0-9). |
\ s | Whitespace-tecken eller (\ t \ n \ x0B \ f \ r). |
\ S | Ej blankstegstecken eller (\ s). |
\ w | Ordet karaktär eller (a-zA-Z_0-9). |
\ W | Icke-ordtecken eller (\ w). |
\ b | Ordgräns. |
\ B | Icke-ordgräns. |
4. Kvantifierare
Kvantifierare nämner antalet förekomst av varje tecken som matchar mot strängen.
Vanligt uttryck | Förklaring |
a? | Händer en gång eller inte alls. |
A * | A förekommer 0 eller flera gånger. |
A + | A inträffar en eller flera gånger. |
En) | A förekommer exakt n gånger. |
En, ) | A förekommer n eller mer än så. |
En (n, m) | A förekommer minst n gånger men det bör inte vara mer än m gånger. |
Hur skapar jag regelbundet uttryck i Java?
Låt oss nu se ett java-program med ovan nämnda reguljära uttryck.
Koda:
//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:
Slutsats
Java Regular Expressions används ofta för realtidsapplikationer som lösenord och e-postverifiering. Dessa uttryck är API: er som definierar mönster och erbjuder sökning, redigering och flera andra operationer i strängen.
Rekommenderade artiklar
Detta är en guide till Regular Expressions i Java. Här diskuterar vi hur man skapar, hur man definierar och vanligt använda metoder för reguljära uttryck i java. Du kan också titta på följande artiklar för att lära dig mer -
- Topp 3 bästa kompilatorer i Java
- Regelbundna uttryck i JavaScript - Egenskaper och metoder
- Java-apputveckling
- Arraymetoder i Java med exempel
- Regex-funktioner i Python (exempel)