第一次正则表达式用户

时间:2013-03-03 01:38:12

标签: java regex

我无法使用正则表达式来显示我需要它在正确的显示器中做什么。 现在我有这个代码,这是一个简单易用的正则表达式,但我仍然不明白它是如何工作的。有没有办法过滤字符串只显示大写字母?

假设我输入一个长名称的句子:

  Tyler Sean Cassie Jon Peter。

如果我不知道字符串中可能包含哪些名称,我怎么能让字符串只显示一个名字? (说每次都会填写一个随机名称)

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.");
        }
    }

}

1 个答案:

答案 0 :(得分:1)

您可以使用ranges inside character sets

[A-Z][a-z]*

这意味着大写字母,后跟零个或多个小写字母

See it in action

如果您对ASCII字母不满意,可以使用:

\\p{Upper}\\p{Lower}*