文字列から1と2以外のすべての数字を削除するJavaプログラム
正規表現「(?<!\\d)数字(?!\\d)」は、指定された特定の数字に一致します。このパターンでは、後読みアサーション((?<!\\d))と先読みアサーション((?!\\d))を組み合わせており、対象の数字の直前・直後に別の数字が存在しない場合、つまり「単独の数字」であるときにのみマッチします。
replaceAll()メソッドは、第1引数に正規表現パターン、第2引数に置換後の文字列を受け取るメソッドです。パターンに一致したすべての箇所が、指定された文字列に置き換えられます。
したがって、文字列から1と2を除くすべての数字を削除するには、以下の手順で処理を行います。
- まず、正規表現を使って数字の「1」を「one」に、「2」を「two」にそれぞれ置き換えます。
- 次に、残りのすべての数字を空文字列に置き換えて削除します。
この処理により、1と2だけが英単語として文字列内に残り、それ以外の数字はすべて取り除かれます。
サンプルコード
import java.util.Scanner;
public class RegexExample {
public static void main(String args[]) {
// ユーザーから文字列を入力として受け取る
System.out.println("Enter a String");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
// 数字「1」に一致する正規表現
String regex1 = "(?<!\\d)1(?!\\d)";
// 数字「2」に一致する正規表現
String regex2 = "(?<!\\d)2(?!\\d)";
// 1をoneに、2をtwoに置き換え、残りの数字をすべて削除
String result = input.replaceAll(regex1, "one")
.replaceAll(regex2, "two")
.replaceAll("\\s*\\d+", "");
System.out.print("Result: " + result);
}
}実行結果
Enter a String sample 1 2 3 4 5 6 Result: sample one two
-
Javaで特定の単語を除いてファイル内のすべての文字を「#」に置き換えるプログラム
Javaでファイルの内容を処理し、特定の単語だけを残して他のすべての文字を「#」に置き換えたい場面は少なくありません。本記事では、split()メソッドとreplaceAll()メソッドを組み合わせて、この処理を実現する方法を解説します。 使用する主なメソッド split()メソッドは、Stringクラスに用意されたメソッドで、指定した正規表現に一致する部分を区切りとして現在の文字列を分割します。戻り値の配列には、正規表現に一致する部分文字列で区切られた各部分文字列、あるいは文字列の末尾までの部分文字列が格納されます。 replaceAll()メソッドは、正規表現と置換後の文字列の2つの引数を
-
Pythonで文字列から英数字以外の文字を削除する方法(正規表現を使った実装例)
Pythonで文字列から英字と数字以外のすべての文字を削除したい場合、正規表現を利用するのが最も簡単で効率的な方法です。あらかじめパターンとなる正規表現を定義し、対象の文字列に対してそのパターンを適用することで、不要な文字を一括して取り除くことができます。サンプルコード以下は、英数字以外の文字を削除する具体的な実装例です。import re my_string = python123:, .@! abc print(元の文字列:) print(my_string) result = re.sub([\W_]+, , my_string) print(処理後の文字列:) print(re