首页 > 解决方案 > 如何使正则表达式工作以查找以 A 开头的 7 个字母单词

问题描述

开发一个 Java 程序,该程序可以从文本文档中抓取以“A”开头且长度为 7 个字母的单词。我正在尝试在 Java 中使用正则表达式。

可能有人在这里给我一些指示如何做到这一点?

`Pattern sevenLetters = Pattern.compile("^\\w{A}{6}$");`

不幸的是,没有得到我的目标。

() 中的语法是什么?

谢谢

标签: regex

解决方案


也许,

\\bA[a-z]{6}\\b

可能只是工作正常。

测试

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegularExpression{

    public static void main(String[] args){


        final String regex = "\\bA[a-z]{6}\\b";
        final String string = "Aabcdef Aabcdefg Aabcde Aabcdef \n"
             + "Aabcdef Aabcdefg Aabcde Aabcdef ";

        final Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
        final Matcher matcher = pattern.matcher(string);

        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));
            for (int i = 1; i <= matcher.groupCount(); i++) {
                System.out.println("Group " + i + ": " + matcher.group(i));
            }
        }

    }
}

如果您想简化/修改/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您愿意,您还可以在此链接中观看它如何与一些示例输入匹配。


正则表达式电路

jex.im可视化正则表达式:

在此处输入图像描述


推荐阅读