查找带有正则表达式的3个字母的所有单词

时间:2015-10-08 13:28:29

标签: java regex string parsing

我正在尝试在字符串中找到包含3个字母的所有单词 所以在这个列表中

cat monkey dog mouse

我只想要

cat dog

这是我的表达:

^[a-zA-Z]{3}$

我使用不同的在线正则表达式测试器进行了测试,但没有一个与我的表达相匹配。

3 个答案:

答案 0 :(得分:12)

您应该使用与单词边界匹配而不是锚点:

\b[a-zA-Z]{3}\b

RegEx Demo

使用时:

^[a-zA-Z]{3}$

这意味着您要匹配一行精确的3个字母。

答案 1 :(得分:2)

如果您想匹配任何字符(也是数字),则可以使用.代替[a-zA-Z]

 \b.{3}\b

答案 2 :(得分:1)

  1. 要匹配字符串中包含3个字母的所有单词,模式需要 " \ b [a-zA-Z] {3} \ b"

  2. 下一步是编译你的模式。

    Pattern pattern = Pattern.compile("\\b[a-zA-Z]{3}\\b");
    
  3. 使用匹配器并使用find()和group()方法打印事件

    for (String word : sentence) {
        Matcher matcher = pattern.matcher(word);
        while(matcher.find()) {
            System.out.println(matcher.group());
        }
    }
    
  4. 您的程序应该类似于 -

    public static void main(String[] args) {
        List<String> sentence = new ArrayList<String>();
        sentence.add("cat");
        sentence.add("monkey");
        sentence.add("dog");
        sentence.add("mouse");
    
        Pattern pattern = Pattern.compile("\\b[a-zA-Z]{3}\\b");
    
        for (String word : sentence) {
            Matcher matcher = pattern.matcher(word);
            while(matcher.find()) {
                System.out.println(matcher.group());
            }
        }
    }