用于检查字符串中第一个字母的正则表达式

时间:2014-11-17 09:41:09

标签: java regex

一个正则表达式,用于检查从给定输入字符串构造APPLE的单词。这方面的一个例子是" A p 人们看到 p erson l eaving for ë veryone。 到目前为止,这就是我所做的

//        Pattern applePattern = Pattern.compile("\\w+^[aA]?");
//        Matcher outputApple;
//        String apple;
//        do {
//            System.out.print("Enter a string that contructs the word APPLE: ");
//            apple = input.nextLine();
//            outputApple = applePattern.matcher(apple);
//        } while (!outputApple.find());

    String applePattern=("\\w+^[aA]?");
    String outputApple;
    String apple;
    do{
        System.out.println("Enter a string that contructs the word APPLE: ");
        apple=input.nextLine();
        outputApple=apple.matches(applePattern)?"TRUE":"FALSE";
    }while(outputApple.equals("FALSE"));

另外,你推荐什么?评论的代码或其他?

编辑:它现在正在按预期工作。

 String applePattern = ("[Aa].*? p.*? p.*? l.*? e\\S*");
    String outputApple;
    String apple;
    do {
        System.out.print("Enter a string that contructs the word APPLE: ");
        apple = input.nextLine();
        outputApple = apple.matches(applePattern) ? "TRUE" : "FALSE";
    } while (outputApple.equals("FALSE"));

1 个答案:

答案 0 :(得分:3)

好像你的意思是这种模式。

[Aa].*? p.*? p.*? l.*? e\\S*

代码:

String s = "A people see person leaving for everyone";
System.out.println(s.matches("[Aa].*? p.*? p.*? l.*? e\\S*")); // true

说明:

  • [Aa]匹配大写A或小a
  • .*?<space>将任何角色与该空间匹配。
  • 空格后面的
  • p字符将是一个字母p。同样,它会升至<space>e
  • \S*匹配零个或多个非空格字符。