Java:
正規表現の使用
使い方:
Javaでのregexの組み込みサポートは、主にjava.util.regex
パッケージのPattern
クラスとMatcher
クラスを通じて提供されます。ここに、文字列内の単語のすべての出現を大文字・小文字を区別せずに見つけて出力する簡単な例を示します。
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());
}
}
}
出力:
Found 'parsing' at position 16
Found 'Parsing' at position 31
文字列を分割するようなタスクの場合、regexを使用してString
クラスのsplit()
メソッドを使用できます。
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
Javaでregexを扱う際、複雑なタスクを簡素化する外部ライブラリが役立つ場合があります。Javaでregexを扱うための人気のサードパーティライブラリの一つにApache Commons Lang
があります。これは、一部のregexタスクをより簡単にするようなStringUtils
などのユーティリティを提供します。ここに、サブストリングの一致回数を数えるための使用方法を示します。
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 + "' appears " + count + " times.");
}
}
Apache Commons Langを使用するには、プロジェクトに含める必要があります。Mavenを使用している場合、この依存関係をpom.xml
に追加してください。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <!-- 最新バージョンを確認してください -->
</dependency>
出力:
'processing' appears 2 times.