java基础整理二十五(正则表达式)
来源:互联网 发布:linux不能查看历史命令 编辑:程序博客网 时间:2024/06/06 17:22
第二十五天
正则表达式:符合一定规则的表达式,专门用来操作字符串
好处:可以简化对字符串的复杂操作
弊端:符号定义越多正则越长阅读性越差
具体操作功能:
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());
}
}
}
- java基础整理二十五(正则表达式)
- java基础整理十五(集合二)
- Java基础<十五>_正则表达式
- java基础学习之正则表达式 十五
- Java基础-正则表达式(二)
- 正则表达式基础(二)
- JAVA基础学习(二十六)--正则表达式
- Java--正则表达式基础入门(二)
- C#正则表达式整理备忘(二)
- 整理正则表达式基础理论(二)
- 正则表达式 java 整理
- JSP基础(二十五)——EL表达式
- java正则表达式(二)
- JAVA正则表达式(二)
- java正则表达式(二)
- java基础(正则表达式)
- Java基础(正则表达式)
- Perl之正则表达式基础(二)
- java基础整理二十三(网络编程)
- spring 的定时器
- VC++ 写Dll和调用
- java基础整理二十四(网络编程二)
- JAVA学习笔记——Date与String之间的相互转换
- java基础整理二十五(正则表达式)
- span border-top,border-bottom属性在IE不显示解决方法,兼容IE ,Chrome,Firefox
- java基础加强(一)
- 如何把阿拉伯数字转换为中文大写?
- git技巧:删除在本地的但在远程库中已经不存在的分支
- getaddrinfo()函数详解
- 基础加强(二)
- bzoj 1901 动态求k大值
- java 实现数据结构之队列