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

正则表达式学习

阅读更多

/**
 * JAVA中的正则表达式
 */

package test.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegexExample {

	/**
	 * 
	 * @param args
	 */

	public static void main(String[] args) {

		System.out.println("1———");

		RegexExample.getNameFormPath();

		System.out.println();

		System.out.println("2———");

		RegexExample.printPostNo();

		System.out.println();

		System.out.println("3———");

		RegexExample.getMonthFormText();

		System.out.println();

		System.out.println("4———");

		RegexExample.replaceString();

		System.out.println();

		System.out.println("5———");

		RegexExample.printIdCord();

		System.out.println();

		System.out.println("6———");

		RegexExample.getChcn();

		System.out.println();

		System.out.println("7———");

		RegexExample.getEmail();

		System.out.println();

		System.out.println("8———");

		RegexExample.extractURL();

	}

	/**
	 * 
	 * 从文件路径中提取文件名,含后缀
	 * 
	 * 
	 * 
	 * 正则表达式中 "."表示匹配仍何单个字符
	 * 
	 * ".+"表示匹配任何一个个或多个字符
	 * 
	 * ".+/(.+)$"表示以任意字符开始,任意字符结尾,中间包含"/"
	 * 
	 * "()"代表分组操作
	 * 
	 * Matcher类的group的索引值以1开始
	 */

	public static void getNameFormPath() {

		System.out.println("从文件路径中提取文件名,含后缀———–Start————");

		// 定义字符串路径

		String path = "c:/dir/dir2/name.txt";

		System.out.println(path);

		// 定义正则表达式, 以任何字符开头,仍和字符结尾,中间用"/"分隔的字符串,对最有一个/分隔出的字符串分组

		String regEx = ".+/(.+)$";

		// 得到正则表达式模型对象

		Pattern p = Pattern.compile(regEx);

		// 得到匹配结果对象

		Matcher m = p.matcher(path);

		// 如果不存在匹配

		if (!m.find())
			System.out.println("文件路径格式错误!");

		else

			// 打印正则表达式中定义分组中的第一个

			System.out.println(m.group(1));

		System.out.println("从文件路径中提取文件名,含后缀———–Start————");

	}

	/**
	 * 
	 * 邮政编码的正则表达式
	 * 
	 * 
	 * 
	 * [0-9]{6}表示0到9直接的数字任意6个
	 * 
	 * \d与[0-9]意思相同,\d在JAVA字符串中转义之前为"\\d"
	 */

	public static void printPostNo() {

		System.out.println("邮政编码的正则表达式———–Start————");

		String a = "200100";

		System.out.println(a);
		System.out.println(Pattern.matches("\\d{6}", a));

		String b = "as6554";

		System.out.println(b);

		System.out.println(Pattern.matches("[0-9]{6}", b));

		System.out.println("邮政编码的正则表达式————End————-");

	}

	/**
	 * 
	 * 从字符串"June 26, 1951″中提取出月份
	 * 
	 * 
	 * 
	 * \\s表示换行指标空格等空白字符
	 */

	public static void getMonthFormText() {

		System.out.println("从字符串\"June 26, 1951\"中提取出月份———–Start————");

		String strdate = "June 26, 1951";

		System.out.println(strdate);

		String regEx = "([a-zA-Z]+)\\s+[0-9]{1,2},\\s*[0-9]{4}";

		Pattern p = Pattern.compile(regEx);

		Matcher m = p.matcher(strdate);

		if (!m.find())
			System.out.println("日期格式错误!");

		else
			System.out.println(m.group(1));

		System.out.println("从字符串\"June 26, 1951\"中提取出月份————End————-");

	}

	/**
	 * 
	 * 把字符串中所有一个或多个a的地方都替换成A, 如 aaaa -> A
	 */

	public static void replaceString() {

		System.out.println("把字符串中所有一个或多个a的地方都替换成A———–Start————");

		String str = "okaaaaa Let meaaaaseeaa aa ! aohaa myaa godaa !a";

		System.out.println(str);

		String regEx = "a+";

		Pattern p = Pattern.compile(regEx);

		Matcher m = p.matcher(str);

		String s = m.replaceAll("A");

		// Easy AdSense by Unreal
		System.out.println(s);

		System.out.println("把字符串中所有一个或多个a的地方都替换成A————End————-");

	}

	/**
	 * 
	 * 验证身份证号码
	 */

	public static void printIdCord() {

		System.out.println("验证身份证号码———–Start————");

		String id = "429006198203070318";

		System.out.println(Pattern.matches("\\d{15}|\\d{18}", id));

		System.out.println(Pattern.matches("[0-9]{18}|[0-9]{15}", id));

		System.out.println("验证身份证号码————End————-");

	}

	/**
	 * 
	 * 中文提取 不包含中文标点
	 * [\\u4E00-\\u9FFF]+ (不包含中文标点)
	 */

	public static void getChcn() {

		System.out.println("中文提取———–Start————");

		String str = "welcome to china, 肖曲来, yes, 谢 谢;";

		System.out.println(str);

		Pattern p = Pattern.compile("[\\u4E00-\\u9FFF]+");

		Matcher m = p.matcher(str);

		String s = "";

		while (m.find()) {

			s = s + m.group();

		}

		System.out.println(s);

		System.out.println("中文提取————End————-");

	}

	/**
	 * 
	 * 验证Email地址
	 * \\w 等价于 [a-zA-Z0-9_]
	 */

	public static void getEmail() {

		System.out.println("验证Email地址———–Start————");

		String email = "asdf@asd.com";

		System.out.println(email);

		String regEx = "\\w+@\\w+\\.\\w+";

		Pattern p = Pattern.compile(regEx);

		Matcher m = p.matcher(email);

		if (m.matches())
			System.out.println("合法的Email");

		else
			System.out.println("不合法的Email");

		email = "ad_sdf@___.___";

		System.out.println(email);

		m = p.matcher(email);

		if (m.matches())
			System.out.println("合法的Email");

		else
			System.out.println("不合法的Email");

		System.out.println("验证Email地址———–Start————");

	}

	/**
	 * 
	 * 解析URL
	 * 
	 * [^#] 表示不能包含"#"
	 */

	public static void extractURL() {

		RegexExample.URLInfo urlInfo = new RegexExample().new URLInfo();

		String strUrl = "ftp://www.ftp.com/incoming/movie.rm";

		System.out.println(strUrl);

		String regEx = "([a-zA-Z]+)://([a-zA-Z0-9]+[\\w-\\.]+[a-zA-Z0-9]+)(:\\d{2,5}){0,1}/([^#]*)";

		Pattern p = Pattern.compile(regEx);

		Matcher m = p.matcher(strUrl);

		if (m.find()) {

			urlInfo.protocal = m.group(1);

			urlInfo.host = m.group(2);

			urlInfo.port = m.group(3);

			urlInfo.path = m.group(4);

		}

		System.out.println("protocal=" + urlInfo.protocal);

		System.out.println("host=" + urlInfo.host);

		System.out.println("port=" + urlInfo.port);

		System.out.println("path=" + urlInfo.path);

		String strUrl2 = "http://www.sina.com.cn:8080/asdf/aasdf.jsp?proc=aid";

		System.out.println(strUrl2);

		m = p.matcher(strUrl2);

		if (m.find()) {

			urlInfo.protocal = m.group(1);

			urlInfo.host = m.group(2);

			urlInfo.port = m.group(3);

			urlInfo.path = m.group(4);

		}

		System.out.println("protocal=" + urlInfo.protocal);

		System.out.println("host=" + urlInfo.host);

		System.out.println("port=" + urlInfo.port);

		System.out.println("path=" + urlInfo.path);

	}

	class URLInfo {

		private String protocal;

		private String path;

		private String host;

		private String port;

	}

	/**
	 * 
	 * UBB代码 翻译
	 */

	public static void txUBB() {

	}

}
 
分享到:
评论

相关推荐

    正则表达式学习工具

    本“正则表达式学习工具”是专为C#初学者和开发者设计的,旨在提供一个方便的环境来学习和测试正则表达式。 首先,我们来了解C#中的正则表达式基础。C#中的正则表达式操作主要通过`System.Text.RegularExpressions`...

    正则表达式学习资料以及练习项目代码很多

    这个压缩包包含了丰富的正则表达式学习资源,适合有一定基础的初学者深入学习。 1. **基础概念** - **模式匹配**:正则表达式定义了一种模式,可以用来匹配符合该模式的字符串。 - **元字符**:如`.`代表任意单个...

    正则表达式学习资料整理

    在这个“正则表达式学习资料整理”中,我们主要探讨的是如何理解和运用正则表达式进行四则运算相关的匹配。 首先,我们需要了解正则表达式的基本构成元素。它们包括: 1. **字符类**:用方括号`[]`定义,如 `[0-9]...

    正则表达式全解及正则表达式学习心得

    正则表达式全解及正则表达式学习心得 正则表达式是字符串模式匹配的强大工具,掌握正则表达式可以让开发者更方便地处理字符串数据。本文将对正则表达式的基本概念、元字符、模式匹配、量词、分组、字符类、边界匹配...

    java正则表达式学习

    【Java正则表达式学习】 Java正则表达式是Java编程语言中用于处理字符串的强大工具,自JDK1.4版本起被引入。它源于PHP并迅速流行,主要用于复杂字符串的验证和处理。正则表达式可以高效地完成对字符串的检查、分割...

    正则表达式学习手册

    ### 正则表达式学习手册知识点总结 #### 1. 引言 正则表达式是一种强大的文本处理工具,能够帮助用户实现字符串的查找、替换等功能。正则表达式的应用场景非常广泛,尤其在编程领域中不可或缺。对于初学者来说,...

    正则表达式学习书PDF

    在"正则表达式学习书PDF"这个资源中,包含两本关于正则表达式的教程: 1. **《正则表达式必知必会》** 这本书通常会深入浅出地介绍正则表达式的概念和用法,包括基本字符类(如字母、数字、空白符)、量词(如*、+...

    正则表达式学习视频

    在正则表达式的简单语法部分,你将学习到: 1. 基本字符匹配:如点号(.)匹配任意单个字符,星号(*)表示前面的元素可以重复零次或多次。 2. 字符集合:使用方括号([])定义一个字符集,如[a-z]匹配所有小写字母。...

    易语言正则表达式学习工具源码

    易语言正则表达式学习工具源码是一款专为学习易语言和正则表达式设计的软件开发资源。正则表达式(Regular Expression)是用于处理字符串的强大工具,它在编程中有着广泛的应用,如文本搜索、替换、数据验证等。...

    正则表达式学习课件PPT

    本课件“正则表达式学习课件PPT”旨在为初学者提供一个基础的正则表达式学习平台,特别地,通过使用C#语言来演示其应用。 首先,我们需要理解正则表达式的基础语法。正则表达式由一系列特殊字符和普通字符组成,...

    正则表达式学习资料

    在这个"正则表达式学习资料"中,我们将深入探讨正则表达式的基本概念、语法以及在Java中的应用。 1. 正则表达式基础: - **模式匹配**:正则表达式是由字符和特殊符号组成的字符串,用于定义一种模式,可以用来...

    正则表达式学习,常用的正则表达式

    正则表达式学习 正则表达式是计算机科学中的一种形式语言,它通过字符串操作来描述、匹配和处理字符串的方式。正则表达式通常用于文本搜索、匹配、替换、筛选等操作。 正则表达式简介 正则表达式的主要功能是对...

    正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe

    正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式验证工具 exe正则表达式 学习 全收集 chm pdf 正则表达式...

    正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强有力的模式匹配工具,广泛应用于各种编程语言中,用于文本处理。正则表达式允许用户定义复杂的查找模式,这对于数据验证、搜索和替换操作特别...

    正则表达式 必知必会 pdf

    它的出版,为程序员和开发人员提供了一本实用性强的正则表达式学习资源。本书基于各种实用场景,从基础的文本匹配开始,逐步深入到回溯引用、条件性求值以及前后查找等高级特性,使得读者能够系统、全面地掌握正则...

    vb正则表达式实例(正则表达式测试程序)

    在VB.NET中,正则表达式...总之,“vb正则表达式实例”是一个实用的工具,它通过图形界面帮助开发者直观地测试和学习正则表达式。了解并熟练掌握正则表达式在VB.NET中的使用,将极大地提升你在文本处理方面的编程能力。

    易语言正则表达式学习工具

    易语言正则表达式学习工具是一款专为学习和实践正则表达式设计的应用程序,它以易语言作为编程基础,提供了友好的用户界面和丰富的功能,帮助初学者和专业人士更好地理解和掌握正则表达式的核心概念。 正则表达式,...

    正则表达式转换工具

    - 工具支持:利用在线正则表达式测试网站,如Regex101,进行实时调试和学习。 综上所述,"正则表达式转换工具"是处理文本数据的强大辅助,它简化了正则表达式的构造过程,使得非专业人士也能方便地利用正则表达式...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    为了进一步学习,可以查阅Python官方文档的`re`模块,以及各种正则表达式在线教程和练习网站。 通过这个简短的教程,你应该对Python中的正则表达式有了初步的了解。继续实践和探索,将有助于你更好地掌握这一强大...

Global site tag (gtag.js) - Google Analytics