正则表达式

正则表达式的作用:

        1.校验字符串是否满足一定的规则

        2.在一段文本中查找满足要求的内容

正则表达式:一个字符串,带匹配的字符串需要调用.matches(regrex)获得匹配结果

        字符类:

                [abc]:只能是a,b,c

                [^abc]:除了a,b,c以外的任何字符

                [a-zA-Z]:a到z,A到Z,包括

                [a-d[m-p]]:a到d或者m到p

                [a-z&&[def]]:a-z与def的交集

                [a-z&&[^bc]]:a-z和非bc的交集

                [a-z&&[^m-p]]:a到z和非m到p的交集

                如果要表示两个范围的交集,需要写符号&&

                如果写成了一个&,那么此时&表示的是只是一个简单的&符号

        预定义字符:

                .:任意字符

                \\d:一个数字

                \\D:非数字

                \\s:一个空白字符,[\t\n\x0B\f\r]

                \\S:非空白字符

                \\w:英文、数字、下划线

                \\W:一个非单词字符

                []:里面的内容出现一次

                ():分组

                ^:取反

                &&:取交集,不能写单个的&

                |:写在方括号外面表示并集

                (?i):忽略后面的大小写

        数量词:

                ?:一次或0次

                *:零次或多次

                +:一次或多次

                {n}:正好出现n次

                {n,}:至少出现n次

                {n,m}:至少出现n次但不超过m次

爬虫:

        Pattern:表示正则表达式

        Matcher:文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取,在大串中寻找符合匹配规则的子串

Pattern p = Pattern.compile(regrex);
获取regrex对应的文本匹配器的对象
Matcher m  = p.matcher(大串);
拿着文本匹配器从头开始读取,寻找是否有满足规则的子串,如果没有,则返回false,如果有,则返回true,在底层记录子串的起始索引和结束索引+1
boolean b = m.find();
while(m.find()){
    String s = m.group();
}

        带有条件的数据爬取:

        贪婪爬取:在爬取数据时尽可能的多获取数据

                在java中默认是贪婪爬取,如果在数量词后面加上?,此时就表示非贪婪爬取

        非贪婪爬取:在爬取数据时尽可能少获取数据

        正则表达式在字符串中的使用:

                public String[] matches(String regex):判断字符串是否满足正则表达式的规则

                public String replaceAll(String regex,String newStr):按照正则表达式的规则进行替换

                public String[] split(String regex):按照正则表达式的规则切割字符串

        正则表达式中()每组是有组号的,也就是序号 

                规则1:从1开始,连续不间断

                规则2:以左括号为基准,最左边是第一组,其次为第二组,以此类推 

                \\组号:把对应租号中的内容提出来,再使用一次       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值