0

適切なディスプレイで行う必要があるときに正規表現を使用して表示するのに問題があります。今、私はこのコードを簡単に使用できる正規表現を持っていますが、それがどのように機能するかはまだわかりません。文字列をフィルタリングして大文字のみを表示する方法はありますか?

名前の長い文を入力するとしましょう:

タイラー・ショーン・キャシー・ジョン・ピーター.

文字列に含まれる名前がわからない場合、文字列に 1 つの名前だけを表示するにはどうすればよいでしょうか? (ランダムな名前が毎回入力されると言う)

import java.io.Console;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {


    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("Enter your Regex: ");
        Pattern pattern = 
        Pattern.compile(input.nextLine());


        System.out.println("Enter String to Search");
        Matcher matcher =
        pattern.matcher(input.nextLine());

        boolean found = false;
        while (matcher.find()) {
            System.out.println("I found the text" + " " + matcher.group() +" starting at " + "index " + matcher.start() + " and ending at index " + matcher.end());
            found = true;
        }

        if (!found) {
            System.out.println("No match found.");
        }
    }

}
4

1 に答える 1

1

文字セット内で範囲を使用できます。

[A-Z][a-z]*

これは、大文字の後に0 個以上の小文字が続くことを意味します。

実際に見る


ASCII 文字だけでは満足できない場合は、次を使用できます。

\\p{Upper}\\p{Lower}*
于 2015-12-09T19:50:50.450 に答える