正则表达式笔记

//简单认识正则表达式的概念
一个点’.’代表一个字符

\d代表数字,两个反斜杠代表一个反斜杠(java中斜杠表示需要两个斜杠)

[a-z]{3}表示三个字符,范围为a到z
[a-z]{3}{3,100}代表有3到100个字符,范围为a到z
Pattern p = Pattern.compile(“[a-z]{3}”);//正则模式赋值
Matcher m = p.matcher(“fgh”);//匹配某个字符串,即”fgh”是否满足三个字符,且范围为a到z
p(m.matches());//判断是否匹配,输出true or false

//初步认识. * + ? //正则表达式中的特殊字符
点.代表一个字符,而\.代表字符.
.*代表0个或多个字符
.+代表1个或多个字符
.?代表0个或1个字符

[abc]取abc中的一个字母
[^abc]表示除了abc以外的字符
[a-zA-Z] 或者 [a-z]|[A-Z] 或者 [a-z[A-Z]]取a到z或者A到Z范围中的一个
[A-Z&&[RFG]]交集,即表示RFG中的一个字母

//认识\s \w \d \
\s表示空白字符,比如’ ‘,’\n’,’\r’,’\t’
\S表示空白字符以外的字符
\w表示单词字符,比如字母’a’,下划线’_’,数字8
\d表示数字
\\表示斜杠\

//边界
^h表示以字符h开头
r$表示以字符r结尾
\b表示单词边界符,比如空格,空白字符

//空白行
^[\s&&[^\n]]*\n$,即以0个或多个空白字符(除去换行符)开头,以换行符结束

//邮件地址
[\w[.-]]+@[\w[.-]]+\.[\w]+,即单词字符或者字符.或者-一个或多个,然后以@分隔,然后又是单词字符或者字符.或者-一个或多个,然后以字符.分隔,最后是单词字符一个或多个

Pattern,Matcher,matches,find等

Pattern p = Pattern.compile("\\d{3,5}");//正则模式是35个数字
String s = "123-34345-234-00";
Matcher m = p.matcher(s);//字符匹配
p(m.matches());//明显不匹配,长度不同
m.reset();
p(m.find());//找匹配的子串,输出true
p(m.start() + "-" + m.end());//第一个子串123,即输出0-3
p(m.find());//找第二个匹配的子串,输出true
p(m.start() + "-" + m.end());//第二个子串34345,即输出4-9
p(m.find());
p(m.start() + "-" + m.end());//10-13
p(m.find());
//p(m.start() + "-" + m.end());
p(m.lookingAt());//从头开始找true
p(m.lookingAt());;//从头开始找true
p(m.lookingAt());;//从头开始找true
p(m.lookingAt());;//从头开始找true

替换特定字符串Matcher.appendReplacement()

//replacement
        /*
        Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
        StringBuffer buf = new StringBuffer();
        int i=0;
        while(m.find()) {
            i++;
            if(i%2 == 0) {
                m.appendReplacement(buf, "java");//单数替换成小写
            } else {
                m.appendReplacement(buf, "JAVA");//偶数替换成大写
            }
        }
        m.appendTail(buf);//添加尾巴
        p(buf);
        */

Matcher.group()用法

//group
        /*
        Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");//分了3组,第一个括号,第二个括号,整个正则表达式
        String s = "123aa-34345bb-234cc-00";
        Matcher m = p.matcher(s);
        while(m.find()) {
            p(m.group());//表示大组,如果是m.group(1),表示第一个括号,即输出数字;如果是m.group(2),即输出字母
        }
        */

?=a即a?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值