java 对于匹配数字字母 正则表达式:Pattern类与Matcher类详解

本文介绍了一个简单的Java程序,该程序使用正则表达式来匹配特定格式的日期(如1992年2月3日)。通过Pattern和Matcher类实现了对日期中年、月、日部分的有效匹配,并演示了如何获取匹配的开始位置和结束位置。
package homework;

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

public class H1 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String s = "1992年2月3日";
        Pattern pt = Pattern.compile("(\\d+)([\u4e00-\u9fa5]+)(\\d+)([\u4e00-\u9fa5]+)(\\d+)([\u4e00-\u9fa5]+)");
        //这里[\u4e00-\u9fa5]是匹配汉字的意思
        Matcher mc = pt.matcher(s);
        int x1 = 0,x2 = 0,x3 = 0;
        if(mc.find()){
            System.out.println(mc.group());
            System.out.println(mc.start());
            System.out.println(mc.end());
        }
    }

}

Mathcer m2=m.matcher(“2223bb”);
m.lookingAt(); //匹配2223
m.start(); //返回0,由于lookingAt()只能匹配前面的字符串,所以当使用lookingAt()匹配时,start()方法总是返回0
m.end(); //返回4
m.group(); //返回2223

Matcher m3=m.matcher(“2223bb”);
m.matches(); //匹配整个字符串
m.start(); //返回0,原因相信大家也清楚了
m.end(); //返回6,原因相信大家也清楚了,因为matches()需要匹配所有字符串
m.group(); //返回2223bb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值