java基础加强(一)


第二十五天
正则表达式:符合一定规则的表达式,专门用来操作字符串
好处:可以简化对字符串的复杂操作
弊端:符号定义越多正则越长阅读性越差

具体操作功能:
1,匹配:String matches方法,用规则匹配整个字符串一处不符合即为false
2,切割:String split();
3,替换:replaceAll("(.)//1","$1");$1表示替换为替换为第一个组的数据
4,获取:将字符串中符合规则的子串取出; 操作步骤:1,将正则封装成对象 2,让正则对象和要操作的字符串相关联 3,关联后,获取正则匹配引擎 4,对子串操作
String matches方法查阅正则规则
校验qq号码规则:
String qq = 32434554d;要求不以0开头;都是数字;5-15位
String regex = "[1-9][0-9]{4,14}";定义规则1-9开头,第二位可选0-9,往后适用4-14皆可
boolean falg = qq.matches(regex);判断是否符合定义规则
if(falg)
 System.out.println(qq+"符合");
else
 System.out.println(qq+"不符合");

splitDemo("dssfjdddsffdsfjj","(.)\\1+");叠词切割,将规则封装成一个组用()组都有编号,从1开始使用已有的组\n(n为组的编号)来获取

获取:
import java.util.regex.*;
class RegexDemo
{
 public static void main(String[]args)
 {
  String str = "ming tian jiu yao fang jia le";
  String reg = "\\b[a-z]{4}\\b";定义规则\\b表示单词分割符
  规则封装成对象
  Pattern p = Pattern.compile(reg);
  将正则对象和要作用的字符串相关联
  Matcher m = p.matcher(str);
  while(m.find())如果存在符合规则
  {
   m.group();获取符合规则的字符串
   m.start();获取开始的位置 m.end();获取结束的位置
  }
 }
}

将字符串变成:"我要学编程"
import java.util.regex.*;
class Demo
{
 public static void main(String[]args)
 {
  String str = "我我我....我我...要要....要要要...学学学...学学...编编..编编编程..程程";
  str = str.replaceAll("\\.","");
  str = str.replaceAll("(.)\\1+","$1");
  System.out.println(str);
 }
}

邮箱地址进行校验:
public static void checkMail()
{
 String mail = "fdfksdf@qq.com";
 String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";较为精确
 reg = "\\w+@\\w+()\\.\\w+)+";不太精确
  mail.matches(reg);
}

王璐爬虫获取邮箱地址:
import java.io.*;
import java.util.regex.*;
import java.net.*;
class RegexDemo
{
 public static void main(String[]args)
 {
  URL url = new URL("www.baidi.com");
  URLConnection conn = url.openConnection();
  BufferedReader bufr = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  String line = null;
  String mailreg ="\\w+@\\w+()\\.\\w+)+";
  Pattern p = Pattern.compile(mairlreg);
  while (m.find())
  {
   System.out.println(m.group());
  }
 }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值