正则表达式拾贝

前端之家收集整理的这篇文章主要介绍了正则表达式拾贝前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式又称正规表达式,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,在很多文本编辑器中,正则表达式检索、替换那些符合某个模式的文本。其英文的名称是Regular Expression,代码中常可以简写为regex,下面介绍一下这几个小小的贝壳:

【1】Pattern和Matcher 找单词

【2】用mathces是否合法

【3】用split来分割

【4】repleaceAll 来修复句子

【5】还是用Pattern的Compile来查找Email

查找单词

找到一个字符串中两个字母的单词[a-z]表示范围,{2}表示两个

<span style="color: rgb(51,0);"><span style="font-size: 14px;"><span style="font-family:SimSun;">package Regex;
import java.util.regex.*;
// 找到一句话中只有两个字母的单词
public class PatternTest {
	public static void main(String args[]){
		String words = "lsdf,fls,df,ds,dad,dd";
		String wordspattern = "\\b[a-z]{2}\\b";// 其中\b表示的是单词边界
		Pattern pattern = Pattern.compile(wordspattern);
		Matcher matcher = pattern.matcher(words);
		while(matcher.find()){
			System.out.println(matcher.group());
		}
	}
}</span><span style="font-family:Microsoft YaHei;">
</span></span></span>

判断号码

判断QQ号的和手机号的输入法则

<span style="color: rgb(51,0);"><span style="font-size: 14px;"><span style="font-family:SimSun;">package Regex;
import java.util.regex.*;
// 判断QQ号和手机号是否合法
public class MatchTest {
	public static void main(String args[]){
		System.out.println("判断输入的QQ号是否合法——-------");
		String QQ = "131233123";
		String QQReg = "[1-9][0-9]{4,14}";//第一位是1-9,第二位是0-9,包括第二位在内,0-9循环4-14次
		System.out.println(QQ.matches(QQReg));
		
		System.out.println("判断输入的手机号号是否合法——-------");
		String Tel = "15611025780";
		String TelReg = "1[38][0-9]{9}";// 第一位是1,第二位是3或者8,包括第二位在内0-9循环9次
		System.out.println(Tel.matches(TelReg));
	}
}</span><span style="font-family:Microsoft YaHei;">
</span></span></span>

拆分字符串

在字符串有重复的地方拆分字符串

package Regex;
public class SplitTest {
	public static void main(String args[]){
		// (.)表示把任意一个字符封装成数组,就是说以一个字符重复出现的地方为分割线
		String str = "sdffff,ghhghjjio";
		String []strArray = str.split("(.)\\1+");
		for(String s : strArray){
			System.out.println(s);
		}
	}
}

去掉重复

去掉.号和重复的汉

package Regex;
public class ReplaseAll {
	public static void main(String args[]){
		String str = "我我我我我......很很很....快..快乐乐乐乐...";
		str = str.replaceAll("\\.+","");//将重复的.号用""替换,也就是将.号去掉
		str = str.replaceAll("(.)\\1+","$1");//将重复的汉字使用重复数组的第一个字符替换
		System.out.println(str);
	}
}
文件中Email

找到文件中的Email,w+代表的是大小写数字,+号表示一个及以上,\\.就表示.号了,( )表示的是封装成整体字,使字符串恢复正常

package Regex;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.io.*;
public class FindEmail{		
		public static void main(String args[]) throws Exception{
			BufferedReader br = new BufferedReader(new FileReader("H:\\mail.txt"));  
			String emailReg = "\\w+@\\w+(\\.\\w+)+";// 其中\\w+是代表大小写字符或者数字一个以上
			// \\.就是代表的.号,()内的东西表示作为一个整体,后边的+号代表这个整体是一个以上的
			String line = null;
			Pattern pa = Pattern.compile(emailReg);
			while((line = br.readLine()) != null){
				Matcher ma = pa.matcher(line);
				while(ma.find()){
					System.out.println(ma.group());
				}
			}
		}
}

猜你在找的正则表达式相关文章