Att använda reguljära uttryck

Java:
Att använda reguljära uttryck

Hur man gör:

Javas inbyggda stöd för reguljära uttryck är främst genom klasserna Pattern och Matcher i paketet java.util.regex. Här är ett enkelt exempel för att hitta och skriva ut alla förekomster av ett ord i en sträng, utan att skilja på stora och små bokstäver:

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("Hittade '" + matcher.group() + "' på position " + matcher.start());
        }
    }
}

Utmatning:

Hittade 'parsing' på position 16
Hittade 'Parsing' på position 31

För uppgifter som att dela upp strängar kan du använda klassen String och dess metod split() med ett reguljärt uttryck:

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

Utmatning:

Java
Python
Ruby
JavaScript

När du arbetar med reguljära uttryck i Java kan det finnas fall där ett externt bibliotek kan förenkla komplexa uppgifter. Ett av de populära tredjepartsbiblioteken för att arbeta med reguljära uttryck i Java är Apache Commons Lang. Det erbjuder verktyg som StringUtils som gör vissa uppgifter med reguljära uttryck mer rakt på sak. Så här använder du det för att räkna matchningar av en delsträng:

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 + "' förekommer " + count + " gånger.");
    }
}

För att använda Apache Commons Lang behöver du inkludera det i ditt projekt. Om du använder Maven, lägg till detta beroende i din pom.xml:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- Kolla efter senaste versionen -->
</dependency>

Utmatning:

'processing' förekommer 2 gånger.