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 рази.