Säännöllisten lausekkeiden käyttö

Java:
Säännöllisten lausekkeiden käyttö

Kuinka:

Javan sisäänrakennettu tuki regexille tapahtuu pääasiassa Pattern- ja Matcher-luokkien kautta java.util.regex-paketissa. Tässä on yksinkertainen esimerkki, jolla etsitään ja tulostetaan kaikki sanojen esiintymät merkkijonossa, välittämättä kirjainkoosta:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {
    public static void main(String[] args) {
        String text = "Regex is great for parsing. Parsing with regex is powerful.";
        String wordToFind = "parsing";
        
        Pattern pattern = Pattern.compile(wordToFind, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(text);
        
        while (matcher.find()) {
            System.out.println("Löydetty '" + matcher.group() + "' sijainnista " + matcher.start());
        }
    }
}

Tuloste:

Löydetty 'parsing' sijainnista 16
Löydetty 'Parsing' sijainnista 31

Tehtäviin, kuten merkkijonojen jakamiseen, voit käyttää String-luokan split()-metodia regexin kanssa:

public class SplitExample {
    public static void main(String[] args) {
        String text = "Java,Python,Ruby,JavaScript";
        String[] languages = text.split(",");
        
        for (String language : languages) {
            System.out.println(language);
        }
    }
}

Tuloste:

Java
Python
Ruby
JavaScript

Työskennellessäsi regexien kanssa Javassa saattaa olla tapauksia, joissa ulkopuolinen kirjasto voi yksinkertaistaa monimutkaisia tehtäviä. Yksi suosituista kolmannen osapuolen kirjastoista Javassa regexien käsittelemiseen on Apache Commons Lang. Se tarjoaa hyödyllisiä työkaluja kuten StringUtils, jotka tekevät joistakin regex-tehtävistä yksinkertaisempia. Tässä on esimerkki, kuinka sitä käytetään alimerkkijonojen esiintymien laskemiseen:

import org.apache.commons.lang3.StringUtils;

public class CommonsLangExample {
    public static void main(String[] args) {
        String text = "Regex makes text processing easier. Processing text with regex is efficient.";
        String substring = "processing";
        
        int count = StringUtils.countMatches(text, substring);
        System.out.println("'" + substring + "' esiintyy " + count + " kertaa.");
    }
}

Käyttääksesi Apache Commons Langia, sinun on sisällytettävä se projektiisi. Jos käytät Mavenia, lisää tämä riippuvuus pom.xml-tiedostoosi:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- Tarkista viimeisin versio -->
</dependency>

Tuloste:

'processing' esiintyy 2 kertaa.