`
MoonMonster
  • 浏览: 36696 次
  • 性别: 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);
	}
}

 

 

分享到:
评论

相关推荐

    EXCEL-VBA-正则表达式-从实例开始.docx

    正则表达式由一系列的字符和特殊符号组成,用于表示一种特定的文本模式。例如: - `.`:匹配任何单个字符。 - `*`:匹配前面的子表达式零次或多次。 - `+`:匹配前面的子表达式一次或多次。 - `?`:匹配前面的子...

    正则表达式中符号含义大全

    本文将详细介绍正则表达式中常用的符号及其具体含义。 #### 特殊字符 - **`\`**(反斜杠): 作为转义字符,用于指示下一个字符应被视为特殊字符而非普通字符。例如,`\n`表示换行符,而不是普通的字母“n”。 - **...

    Indesign_GREP正则表达式

    通过以上介绍,我们可以看到GREP正则表达式在Adobe InDesign中的应用非常广泛且强大。无论是简单的文本替换还是复杂的格式调整,都能够借助正则表达式快速高效地完成。熟练掌握GREP正则表达式的使用技巧,将极大提升...

    正则表达式II 正则表达式

    通过以上介绍,我们不仅了解了正则表达式的基本概念和构成要素,还深入学习了一些高级特性及其应用场景。掌握这些知识点将有助于我们在实际开发工作中更高效地进行字符串的处理和验证工作。无论是简单的字符串匹配...

    正则表达式例子大全

    正则表达式具有丰富的语法,可以匹配从简单的字符到复杂的字符串模式。例如,字符集可以通过方括号来匹配特定范围内的字符;量词(如*、+、?)用来指定某个模式可以重复的次数;锚点(如^和$)分别表示字符串的开始...

    快速上手正则表达式

    在正则表达式中,有一些非常重要的特殊字符,它们被称为元字符,这里总结一些最重要的特殊符号及其含义: 1. .(点):匹配任意单个字符(除换行符外)。 2. [](字符类):匹配括号中的任何一个字符,如[a-z]匹配...

    iOS正则表达式工具

    在iOS开发中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能通过预定义的模式...熟练掌握正则表达式及其使用方法,将极大地提升你的iOS开发能力。同时,利用好相关的工具,可以使开发过程更为高效。

    《正则表达式中文手册》

    正则表达式(Regular Expression)是由一系列字符和特殊符号组成的模式串,主要用于规定待匹配字符串的结构。正则表达式可以用来检查一个字符串是否符合某种形式的规范(如邮箱格式、网址格式等),或者用来提取字符...

    正则表达式详解,附代码运行结果

    以下是一个简单的Python代码示例,演示如何使用正则表达式匹配URL: ```python import re html = """ &lt;a href="http://example.com"&gt;Example &lt;a href="https://www.google.com"&gt;Google """ # 匹配所有链接 ...

    正则表达式常用符号详解

    本文将详细介绍正则表达式中的各种符号及其用法,帮助读者更好地理解和使用正则表达式。 #### 一、基本元素 **1.1 基本字符** - **.**:匹配任何单个字符(除了换行符)。 - **\w**:匹配任意字母数字下划线字符...

    python之常用正则表达式.pdf

    #### 常用正则表达式符号 - **`.`**:匹配除换行符`\n`之外的任意单个字符。 - **`\|`**:逻辑或运算符,用于匹配两个可能的模式之一。 - **`[]`**:字符集,用于匹配方括号内的任一字符。 - **`\d`**:匹配任意...

    正则表达式应用总结

    例如,在给出的代码示例中,可以看到如何使用`Pattern.compile()`方法编译一个简单的正则表达式 `"f(.+?)k"`,然后利用`Matcher`类的`find()`方法来查找符合该模式的所有子串,并通过`group()`方法获取匹配到的具体...

    正则表达式处理html文本例子

    - `ExpressionClass.cs`可能包含一个类,该类使用正则表达式方法进行处理。 - `Form1.cs`可能有用户界面代码,其中包含了正则表达式的应用,比如一个按钮点击事件触发对HTML文本的操作。 - `Program.cs`可能包含...

Global site tag (gtag.js) - Google Analytics