Java:
Bruke regulære uttrykk
Hvordan:
Java sin innebygde støtte for regex er hovedsakelig gjennom Pattern
og Matcher
klassene i java.util.regex
pakken. Her er et enkelt eksempel for å finne og skrive ut alle forekomster av et ord i en streng, uten å ta hensyn til store og små bokstaver:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String tekst = "Regex er flott for parsing. Parsing med regex er kraftfullt.";
String ordÅFinne = "parsing";
Pattern mønster = Pattern.compile(ordÅFinne, Pattern.CASE_INSENSITIVE);
Matcher matcher = mønster.matcher(tekst);
while (matcher.find()) {
System.out.println("Fant '" + matcher.group() + "' på posisjon " + matcher.start());
}
}
}
Output:
Fant 'parsing' på posisjon 16
Fant 'Parsing' på posisjon 31
For oppgaver som å splitte strenger, kan du bruke String
klassens split()
metode med et regex:
public class SplitExample {
public static void main(String[] args) {
String tekst = "Java,Python,Ruby,JavaScript";
String[] språk = tekst.split(",");
for (String språk : språk) {
System.out.println(språk);
}
}
}
Output:
Java
Python
Ruby
JavaScript
Når du jobber med regex i Java, kan det være tilfeller der et eksternt bibliotek kan forenkle komplekse oppgaver. Ett av de populære tredjeparts bibliotekene for å jobbe med regex i Java er Apache Commons Lang
. Det tilbyr hjelpeverktøy som StringUtils
som gjør noen regex oppgaver enklere. Slik bruker du det til å telle matcher av en understreng:
import org.apache.commons.lang3.StringUtils;
public class CommonsLangExample {
public static void main(String[] args) {
String tekst = "Regex gjør tekstbehandling enklere. Behandling av tekst med regex er effektivt.";
String understreng = "behandling";
int antall = StringUtils.countMatches(tekst, understreng);
System.out.println("'" + understreng + "' fremkommer " + antall + " ganger.");
}
}
For å bruke Apache Commons Lang, må du inkludere det i prosjektet ditt. Hvis du bruker Maven, legg til denne avhengigheten i pom.xml
:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <!-- Sjekk for den nyeste versjonen -->
</dependency>
Output:
'behandling' fremkommer 2 ganger.