Java之初识正则表达式

正则表达式是符合一定规则的表达式,专门用来操作字符串

比如:

String qq="123456";
String regex="[1-9],[0-9]{4-14}";
boolean b=qq.matches(regex);

表示:字符串的长度只能为5-15,字符串第一个字符只能是1-9,其他字符范围是0-9

如果被测字符串满足要求,则b=true,否则b=false

使用传统的代码来判断字符串需要将字符一个一个提取出来比较,速度慢且代码量大,正则表达式技术可以帮助我们快速地判断和操作字符串,提升我们的代码效率。

步骤:

假设我们要提取出一个字符串content内所有的英文单词

1、先创建一个pattern对象:

Pattern pattern = Pattern.compile("[a-zA-Z]+");

2、创建一个匹配器对象matcher:

Matcher matcher = pattern.matcher(content);

3、利用匹配器开始循环匹配

while (matcher.find()){
            System.out.println("找到:"+matcher.group(0));
        }

(注:匹配器会将找到的英语单词放入group(0)中)

若需要提取出文章内的英文单词和数字,只需把创建pattern对象的代码改为;

Pattern pattern = Pattern.compile("([a-zA-Z]+)|([0-9]+)");

假设我们需要提取的内容有不确定的地方,比如要从百度网页源码中提取出百度热搜的标题,可以这样做:

Pattern pattern = Pattern.compile("<a target=\"_blank\" title=\"(\\S*)\"");

根据需要提取标题的规律,找到其中一个标题的代码并复制下来,并将标题内容部分修改为“ \\S* ”

并在循环匹配时,将group(0)改为group(1),就可以成功实现功能,

while (matcher.find()){
            System.out.println("找到:"+matcher.group(1));
        }

效果图如下:

 由上可见,正则表达式在程序员处理文本时骑着巨大作用,能节约很多时间

我平时在处理字符串时就经常会遇到一些问题,偶然学习到了正则表达式,帮到了我很多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值