您的位置:首页 > 编程语言 > Java开发

java基础整理二十五(正则表达式)

2013-10-23 18:11 477 查看
第二十五天

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

好处:可以简化对字符串的复杂操作

弊端:符号定义越多正则越长阅读性越差

具体操作功能:

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());

  }

 }

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: