Java正则表达式[abx]{3}

[aeiou]匹配"a"、"e"、"i"、"o"、"u"中的任何一个字符
[a-cA-C]匹配'a'、'b'、'c'、'A'、'B'、'C'中的任何一个字符
[^abc]匹配'a'、'b'、'c'之外的任何一个字符
[^a-c0-2]匹配'a'、'b'、'c'、'0'、'1'、'2'之外的任何一个字符
[a-z&&[^bc]]匹配除'b'、'c'、之外的所有小写英文字母

上述描述只能匹配一个字符。若要匹配多个字符,建议用量词,例如:

(abc){3} 匹配abcabcabc//即括号中的内容重复3次

那问题来了,[abc]{3} 能匹配什么样的单词呢?

我们用计算机来匹配一下,上代码:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
class Recognizer{
    static String[] getWords(String text)
    {
        System.out.print("给定的字符串是:"+text);
        String[] words=text.split("[\\s]+");
        System.out.print("\n分离出来的单词是:\n");
        for(String x:words)
        {
            System.out.print(x+"、");
        }
        return words;
    }
    static void recognize(String text,String reg){
        String[] words=getWords(text);
        System.out.print("\n识别出来的单词是:\n");
        for(int i=0;i<words.length;i++)
        {
            if(words[i].matches(reg)==true)
            System.out.print(words[i]+"、");
        }
    }
}
class App{
    public static void main(String[] args)
    {
        String text,reg;
        text="aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc abcabcabc";
        reg="[abc]{3}";
        Recognizer.recognize(text,reg);
    }
}

运行结果:

我把字母'a'、'b'、'c'组合成27个的三位的组合,计算机把27个组合都匹配了,说明该正则表达式匹配的是只要是'a'、'b'、'c'组合的三位组合都能匹配

补:也可以多尝试几种情况

import java.util.regex.Pattern;
import java.util.regex.Matcher;
class Recognizer{
    static String[] getWords(String text)
    {
        System.out.print("给定的字符串是:"+text);
        String[] words=text.split("[\\s]+");
        System.out.print("\n分离出来的单词是:\n");
        for(String x:words)
        {
            System.out.print(x+"、");
        }
        return words;
    }
    static void recognize(String text,String reg){
        String[] words=getWords(text);
        System.out.print("\n识别出来的单词是:\n");
        for(int i=0;i<words.length;i++)
        {
            if(words[i].matches(reg)==true)
            System.out.print(words[i]+"、");
        }
    }
}
class App{
    public static void main(String[] args)
    {
        String text,reg;
        text="abbb accc abbc accb acbb abcc abcbcbc";
        reg="a[bc]{3}";
        Recognizer.recognize(text,reg);
    }
}

运行结果:

 同样可以分析得到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值