`
MoonMonster
  • 浏览: 35811 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

正则表达式---符号介绍及其简单使用方法

    博客分类:
  • Java
阅读更多

\\ 反斜杠

\t 间隔 ('\u0009')

\n 换行 ('\u000A')

\r 回车 ('\u000D')

\d 数字 等价于[0-9]

\D 非数字 等价于[^0-9]

\s 空白符号 [\t\n\x0B\f\r]

\S 非空白符号 [^\t\n\x0B\f\r]

\w 单独字符 [a-zA-Z_0-9]

\W 非单独字符 [^a-zA-Z_0-9]

\f 换页符

\e Escape

\b 一个单词的边界

\B 一个非单词的边界

\G 前一个匹配的结束

 

^为限制开头

^java     条件限制为以Java为开头字符

$为限制结尾

java$     条件限制为以java为结尾字符

.为限制一个任意字符

java..     条件限制为java后除换行外任意两个字符

 

 

加入特定限制条件「[]

[a-z]     条件限制在小写a to z范围中一个字符

[A-Z]     条件限制在大写A to Z范围中一个字符

[a-zA-Z] 条件限制在小写a to z或大写A to Z范围中一个字符

[0-9]     条件限制在小写0 to 9范围中一个字符

[0-9a-z] 条件限制在小写0 to 9a to z范围中一个字符

[0-9[a-z]] 条件限制在小写0 to 9a to z范围中一个字符(交集)

 

[]中加入^后加再次限制条件「[^]

[^a-z]     条件限制在非小写a to z范围中一个字符

[^A-Z]     条件限制在非大写A to Z范围中一个字符

[^a-zA-Z] 条件限制在非小写a to z或大写A to Z范围中一个字符

[^0-9]     条件限制在非小写0 to 9范围中一个字符

[^0-9a-z] 条件限制在非小写0 to 9a to z范围中一个字符

[^0-9[a-z]] 条件限制在非小写0 to 9a to z范围中一个字符(交集)

 

在限制条件为特定字符出现0次以上时,可以使用「*

J*     0个以上J

.*     0个以上任意字符

J.*D     JD之间0个以上任意字符

 

在限制条件为特定字符出现1次以上时,可以使用「+

J+     1个以上J

.+     1个以上任意字符

J.+D     JD之间1个以上任意字符

 

在限制条件为特定字符出现有01次以上时,可以使用「?

JA?     J或者JA出现

 

限制为连续出现指定次数字符「{a}

J{2}     JJ

J{3}     JJJ

文字a个以上,并且「{a,}

J{3,}     JJJ,JJJJ,JJJJJ,???(3次以上J并存)

文字个以上,b个以下「{a,b}

J{3,5}     JJJJJJJJJJJJ

两者取一「|

J|A     JA

Java|Hello     JavaHello

 

 

package 正则表达式;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * @author Chalmers
 * @version 创建时间:2016年2月5日 下午12:48:54
 */
public class ExpTest {
	public static void main(String[] args) {
		// new ExpTest().pattern("123456789");
		// new ExpTest().patternTime(new Date());
		// new ExpTest().patternStr("aaaaabcaa");
		// new ExpTest().patternEmail("qxinhai@qq.com");
		// new ExpTest().patternMul("Java Hello World Java,Hello,,World|Sun");
		new ExpTest().patternHTML();
	}
	private void pattern(String str) {
		Pattern pattern = Pattern.compile("[\\d]{15}");
		Matcher matcher = pattern.matcher(str);
		if (matcher.find()) {
			System.out.println("匹配");
		} else {
			System.out.println("不匹配");
		}
	}
	private void patternTime(Date date) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
		String time = sdf.format(date);
		// Pattern pattern = Pattern
		// .compile("[\\d]{4}-[\\d]{2}-[\\d]{2}\\s12:[\\d]{2}");
		// Pattern pattern = Pattern.compile("[\\S]{10}\\s13:[\\d]{2}");
		Pattern pattern = Pattern.compile(".+10:00");
		Matcher m = pattern.matcher(time);
		if (m.find()) {
			System.out.println("匹配");
		} else {
			System.out.println("不匹配");
			System.out.println(time);
		}
	}
	private void patternStr(String str) {
		// 表示去除掉split中的内容,然后返回String数组
		String[] strs = str.split("aa.");
		for (String s : strs) {
			System.out.print(s);
		}
	}
	//
	private void patternEmail(String email) {
		// 分出几部分:
		// 1.[\\w[.?]]+ --> 表示有若干个字符,并且'.'字符可有可无
		// 2.@ --> 表示@符号
		// 3.[\\w[.?]] --> 同上
		// 4.\\. --> 表示字符'.'
		// 5.[\\w]+ --> 表示有若干个字符
		// 简单例子:qxinhai@qq.com qxinhai-->1 @-->2 qq-->3 .-->4 com-->5
		// 之所以中间含有[.?],是因为某些邮箱会特别长
		Pattern pattern = Pattern.compile("[\\w[.?]]+@[\\w[.?]]+\\.[\\w]+");
		Matcher m = pattern.matcher(email);
		if (m.find()) {
			System.out.println("匹配");
		} else {
			System.out.println("不匹配");
		}
	}
	// 用正则表达式分割字符串,多条件分割
	private void patternMul(String str) {
		// 表示以[]中的字符分割开字符串,[]可以同时放置多个字符
		Pattern pattern = Pattern.compile("[,\\s|]+");
		String[] strs = pattern.split(str);
		for (int i = 0; i < strs.length; i++) {
			System.out.println(strs[i]);
		}
	}
	// 取出html标记
	private void patternHTML() {
		Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
		Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>");
		String string = matcher.replaceAll("");
		System.out.println(string);
	}
}

 

 

分享到:
评论

相关推荐

    js正则

    那么接下面就来介绍一下正则表达式及其常用的几种方法。 先来介绍一下什么是js正则 正则又名“规则表达式” 由我们自己去制定“规则”,用来检测字符串是否符合“规则”使用的 我们可以用在正则里代表的特殊的字符...

    powerbuilder

    需要注意的是,使用PrintOpen()函数打开打印作业、使用同组的其它函数完成打印任务后,必须使用PrintClose()关闭打印作业,或根据需要使用PrintCancel()函数取消打印作业。 ------------------------------------...

    JavaScript详解(第2版)

     17.3 使用字符串的正则表达式方法   17.3.1 match()方法   17.3.2 search()方法   17.3.3 replace()方法   17.3.4 split()方法   17.4 获取控制——元字符   17.4.1 点元字符   17.4.2 字符...

    VBSCRIP5 -ASP用法详解

    RegExp 对象 提供简单正则表达式的支持。 Rem 语句 包含程序中的注释。 Replace 函数 返回一个字符串,其中某个指定的子串被另一个子串替换,替换的次数也有规定。 Replace 方法 替换在正则表达式搜索中已发现的...

    Windows 文件索检工具 WizFile 3.03.zip

    Windows 带有内置的文件搜索功能,多年来,随着操作系统的最新迭代,该功能得到了改进。在 Windows 10 中,您只需要开始在“开始”菜单中键入内容,...虽然搜索功能强大,但不支持正则表达式过滤和内容搜索。 官方主页

    VBScript 语言参考中文手册CHM

    RegExp 对象 提供简单正则表达式的支持。 Rem 语句 包含程序中的注释。 Replace 函数 返回一个字符串,其中某个指定的子串被另一个子串替换,替换的次数也有规定。 Replace 方法 替换在正则表达式搜索中已发现的...

    VBScript 语言参考

    RegExp 对象 提供简单正则表达式的支持。 Rem 语句 包含程序中的注释。 Replace 函数 返回一个字符串,其中某个指定的子串被另一个子串替换,替换的次数也有规定。 Replace 方法 替换在正则表达式搜索中已发现的...

    C#编程经验技巧宝典

    121 &lt;br&gt;0200 如何使用正则表达式验证电话号码 121 &lt;br&gt;0201 如何使用正则表达式验证输入密码条件 121 &lt;br&gt;0202 如何使用正则表达式验证邮政编号 121 &lt;br&gt;0203 如何使用正则表达式验证手机号 ...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    LINUX 与 UNIX SHELL编程指南

    第 7 章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复序列 51 7.5 使用\屏蔽一个特殊字符的...

    Linux与unix shell编程指南

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    linux shell 编程教程

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    shell 编程指南pdf

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    LINUX与UNIX SHELL编程指南(很全)

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    LINUX与UNIX_Shell编程指南

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的...

    linux与unix shell编程指南.rar

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    linux与unix shell 编程(下)

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

    LINUX与UNIX SHELL编程指南.rar

    第7章 正则表达式介绍 49 7.1 使用句点匹配单字符 50 7.2 在行首以^匹配字符串或字符序列 50 7.3 在行尾以$匹配字符串或字符 51 7.4 使用*匹配字符串中的单字符或其重复 序列 51 7.5 使用\屏蔽一个特殊字符的含义 52...

Global site tag (gtag.js) - Google Analytics