Java:
Використання регулярних виразів
Як:
Вбудована підтримка regex в Java здійснюється головним чином через класи Pattern та Matcher у пакеті java.util.regex. Ось простий приклад, щоб знайти та вивести всі входження слова у рядку, не звертаючи уваги на регістр:
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("Found '" + matcher.group() + "' at position " + matcher.start());
}
}
}Вивід:
Знайдено 'parsing' на позиції 16
Знайдено 'Parsing' на позиції 31Для завдань, таких як розбиття рядків, ви можете використовувати метод split() класу String з 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);
}
}
}Вивід:
Java
Python
Ruby
JavaScriptПрацюючи з regex в Java, можуть бути випадки, коли зовнішня бібліотека може спростити складні завдання. Одна з популярних сторонніх бібліотек для роботи з regex в Java - це Apache Commons Lang. Вона пропонує утиліти, такі як StringUtils, які роблять деякі завдання regex більш простими. Ось як використовувати її для підрахунку збігів підрядка:
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 + "' зустрічається " + count + " разів.");
}
}Щоб використовувати Apache Commons Lang, вам потрібно включити її в ваш проект. Якщо ви використовуєте Maven, додайте цю залежність до вашого pom.xml:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <!-- Перевірте на наявність останньої версії -->
</dependency>Вивід:
'processing' зустрічається 2 рази.