WHS GIS Engineer

Java正则表达式

2017-04-19
WHS

正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。

基础知识

菜鸟教程

正则教程

常用正则表达式

  • 匹配数字 \d+(\.\d+)?
  • 匹配中文字符 [\u4e00-\u9fa5]
  • 匹配邮箱地址 [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
  • 匹配网址 [a-zA-z]+://[^\s]*
  • 匹配国内电话号码 \d{3}-\d{8}|\d{4}-\{7,8}
  • 匹配QQ号 [1-9][0-9]{4,}
  • 匹配身份证号 ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
  • 匹配手机号码 [1][3587]\d{9}

实例

提取字符串中的数字并高亮显示

 String ss = "(一)现状:昆明市所辖14个县市区范围内,共有国有林场14个,其中市级2个,县区12个。从经营类型上划分,全市国有林场均属生态公益型,经营总面积87.32万亩,森林面积63.78万亩,森林总蓄积量为199.55万立方米,森林覆盖率73.05%;(二)目标:通过全面深化国有林场改革,切实做到“三增长、两建立、一确保”。即:资源增长、职工增收、林场增效;全面建立健全职工社会保障体系,尽快建立符合现代林业发展要求的国有林场管理体制和经营机制;确保林区社会和谐稳定";   
        // 创建 Pattern 对象
        Pattern pattern = Pattern.compile("\d+(\.\d+)?");
        Matcher matcher = pattern.matcher(ss.trim());
        String lasts="";
        while (matcher.find()){
            if(lasts.equals(matcher.group())){
                ss=ss.replace(matcher.group(),"<font color=#FF4081>"+ matcher.group()+ "</font>");

            }else {
                ss=ss.replaceFirst(matcher.group(),"<font color=#FF4081>"+ matcher.group()+ "</font>");
            }
            lasts=matcher.group();
        }

Similar Posts

Comments