我无法使用正则表达式来显示我需要它在正确的显示器中做什么。 现在我有这个代码,这是一个简单易用的正则表达式,但我仍然不明白它是如何工作的。有没有办法过滤字符串只显示大写字母?
假设我输入一个长名称的句子:
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.");
}
}
}
答案 0 :(得分:1)
您可以使用ranges inside character sets:
[A-Z][a-z]*
这意味着大写字母,后跟零个或多个小写字母。
如果您对ASCII字母不满意,可以使用:
\\p{Upper}\\p{Lower}*