浅读正则表达式

正则表达式已经不是陌生的话题了,无论是在Java 中还是在JS中都会用到正则表达式,尤其是在搜索引擎中的数据分析用到的最广泛。

先简单的介绍一些表达式:

1、元字符 2、数量

. :匹配除换行符以外的任意字符:

\w:匹配字母或数字或下划线或汉字

\s :匹配任意的空白符

\d:匹配数字:  

\b:匹配单词的开始或结束:  

^:匹配字符串的开始

$:匹配字符串的结束

* :重复零次或更多次

+ :重复一次或更多次

? :重复零次或一次

{n} :重复n次

{n,} :重复n次或更多次

{n,m}:重复n到m次

查找匹配需要分组用到group:  matcher.group(n) 

ps : 转义字符 需要注意。

这只是一些简单的字符。可以参考入门链接  http://deerchao.net/tutorials/regex/regex.htm


下面来简单的介绍一下用法

1、.matches() 匹配:   匹配字符串中含有什么

    (1)String.matches( regex ); 

    (2)matcher.matches( regex );

2、.find()  查找:查找想要的东西 

一般:

Pattern pattern = Pattern.compile( regex );
Matcher  matcher = pattern.matcher( string );
if( matcher.find()){
	String result = matcher.group(n);
}
……


下面来点实战:

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

public class Tr2 {
    public static void test() {
        Pattern pattern;
        Pattern pattern1;
        Matcher matcher;
        String floatStr = "100.22";
        String floatStr2 = "100.22222";
        System.out.println(floatStr.matches("^\\d+\\.\\d{2}"));

        System.out.println(floatStr.matches("^\\d+\\.\\d{2}$"));
        System.out.println(floatStr2.matches("^\\d+\\.\\d{2}$"));

        pattern = Pattern.compile("^\\d+\\.\\d{2}$");
        matcher = pattern.matcher(floatStr);
        if (matcher.matches()) {
            System.out.println("yes");
        } else {
            System.out.println("NO");
        }

        String str = "<li><a href=\"www.baidu.com/category/1\">编程</a></li>";
        pattern = Pattern.compile("\"(\\w+)\"");
        matcher = pattern.matcher(str);
        if (matcher.find()) {
            String result = matcher.group(1);
            System.out.println(result);

        }

        pattern1 = Pattern.compile("\"(.*?)\"");
        matcher = pattern1.matcher(str);
        if (matcher.find()) {
            String result = matcher.group(1);
            System.out.println(result);
        }
    }

    public static void main(String[] args) {
        test();
    }
}


结果:


 简单的暂时是这样了,其实正则表达式很有用处,自己可以进一步拓展……


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值