Korzystanie z wyrażeń regularnych

Java:
Korzystanie z wyrażeń regularnych

Jak to zrobić:

Wbudowane wsparcie dla regex w Javie zapewniają przede wszystkim klasy Pattern i Matcher z pakietu java.util.regex. Oto prosty przykład, jak znaleźć i wydrukować wszystkie wystąpienia słowa w ciągu znaków, niezależnie od wielkości liter:

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("Znaleziono '" + matcher.group() + "' na pozycji " + matcher.start());
        }
    }
}

Wyjście:

Znaleziono 'parsing' na pozycji 16
Znaleziono 'Parsing' na pozycji 31

Do zadań takich jak dzielenie ciągów znaków możesz użyć metody split() klasy String z regex:

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

Wyjście:

Java
Python
Ruby
JavaScript

Pracując z regex w Javie, mogą być przypadki, gdy biblioteka zewnętrzna może uprościć złożone zadania. Jedną z popularnych bibliotek stron trzecich do pracy z regex w Javie jest Apache Commons Lang. Oferuje narzędzia takie jak StringUtils, które sprawiają, że niektóre zadania regex stają się prostsze. Oto jak jej użyć do liczenia wystąpień podciągu:

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 + "' pojawia się " + count + " razy.");
    }
}

Aby użyć Apache Commons Lang, musisz dołączyć ją do swojego projektu. Jeśli używasz Mavena, dodaj tę zależność do swojego pom.xml:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- Sprawdź najnowszą wersję -->
</dependency>

Wyjście:

'processing' pojawia się 2 razy.