`

JDK regex 用法及用途

    博客分类:
  • JDK
 
阅读更多
  • 查找 Boolean flag = pattern.matcher("fda").find();
  • 分割 String[] mm = pattern2.split(“say:”);
  • 格式化 String format= pattern1.matcher(String.valueOf(vv)).group()
  • 替换 String format= pattern3.matcher(ss1) .replaceAll("A")
  • 匹配 String format= pattern5.matcher(email).matches()


public class RegrexUtilTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String testStr="i am a good man, over!";
		String patternStr = "over!$";
		Pattern pattern = Pattern.compile(patternStr);
		Boolean flag =pattern.matcher(testStr).find();
		System.out.println("查找(find):"+testStr + "是以 over! 结尾的:"+flag);
		System.out.println("查找(find):"+"我们一般使用 String.endWith :"+testStr.endsWith("over!"));
		
		testStr="abcde|fff|gg";
		patternStr = "\\|";
		pattern = Pattern.compile(patternStr);
		String targets[] =pattern.split(testStr);
		System.out.print("分割(split): [");
		boolean firstflag = true;
		for(String target:targets){
			if(firstflag){
				System.out.print(target);
				firstflag = false;
			}
			System.out.print(","+target);
		}
		System.out.println("]");
		String target1s[] = testStr.split("\\|");
		
		System.out.print("分割(split): 我们一般使用 String.split [");
		firstflag = true;
		for(String target:target1s){
			if(firstflag){
				System.out.print(target);
				firstflag = false;
			}
			System.out.print(","+target);
		}
		System.out.println("]");
		
		testStr = "abc3.14159526dd";
		patternStr = "[0-9]+\\.[0-9]{2}";
		pattern = Pattern.compile(patternStr);
		Matcher matcher = pattern.matcher(testStr);
		while(matcher.find()){
			System.out.println("格式化(group):"+matcher.group());
		}
		System.out.println("格式化(group): 我们一般使用 String.substring "+testStr.substring(3,7));
		
		testStr = "abcdeabdsa";
		patternStr = "a";
		pattern = Pattern.compile(patternStr);
		String result = pattern.matcher(testStr).replaceAll("A");
		System.out.println("替换(replace):"+result);
		System.out.println("替换(replace): 我们一般使用 String.replace "+result.replaceAll("a", "A"));
		
		testStr = "fdafdjak@163.com";
		patternStr = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
		pattern = Pattern.compile(patternStr);
		flag = pattern.matcher(testStr).matches();
		System.out.println("匹配(matches):"+flag);
	}
}



查找(find):i am a good man, over!是以 over! 结尾的:true
查找(find):我们一般使用 String.endWith :true
分割(split): [abcde,abcde,fff,gg]
分割(split): 我们一般使用 String.split [abcde,abcde,fff,gg]
格式化(group):3.14
格式化(group): 我们一般使用 String.substring 3.14
替换(replace):AbcdeAbdsA
替换(replace): 我们一般使用 String.replace AbcdeAbdsA
匹配(matches):true


可能你们会发现,这些功能可以用startWith,split,replace,substring等常用功能来代替,而且简单实用,除了匹配之外。

但是如果是不区分大小写,当true/yes/1代表一个意思时,正则就发挥作用了。

其实格式化 比如 yyyy-mm-dd, ##.##等等 都是格式化定义,最后都是需要格式化具体的数据。

匹配是正则用的最多的一个功能,手机号码,区号,QQ号码,e-mail,密码,用户名,等等需要用户输入的,如果有必要都要验证。

isPhone: "^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$"
isMobilePhone: "^((\\([0-9]{3}\\))|(\\d{3}-))?(13[456789][0-9]{8}|15[89][0-9]{8})+$"
isEmail: "^[\\w-]+(.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"
isLink: "^<a\\s[^>]*href=\"[^>]*>(.*?)</a>"
...

其他的欢迎补充。


分享到:
评论

相关推荐

    Java Documentation.zip

    这些文档对于Java开发者来说是极其重要的资源,它们详细解释了JDK中的类、接口、方法以及各种核心概念,帮助程序员理解和使用Java语言进行开发。以下是基于这个压缩包内容的一些关键知识点: 1. **JDK版本历史**: ...

    Java API帮助文档中文版

    Java API帮助文档中文版是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)的各种类库、接口、方法的详细说明,对于理解和使用Java语言进行编程至关重要。这份文档覆盖了从基础语法到高级特性的全方位指导...

    深入浅出之正则表达式

    ### 深入浅出之正则表达式详解 #### 1. 正则表达式的概念与起源 正则表达式是一种强大的文本匹配工具,它能够...希望通过对本文的学习,读者能够更加熟练地掌握正则表达式的使用方法,并能够在实际工作中灵活运用。

    javase01学习文档

    */`格式的注释用于生成Javadoc,这是一种自动生成API文档的工具,可以帮助开发者理解类、方法和字段的功能、用途和使用方式。 ### 字符串(String) `String` 类在Java中扮演着重要角色,它是不可变对象,意味着...

    nutch_1.4在windows下安装配置.pdf

    - **用途**: Nutch 为 Java 应用程序,需先安装 JDK 并设置环境变量。 2. **Cygwin** - **下载地址**: [http://www.cygwin.com/](http://www.cygwin.com/) - **用途**: 由于 Nutch 的脚本采用 Linux Shell 编写,...

    JavaSe总结

    ### 线程常用属性及方法 线程具有一些常用的属性,如ID、名称、优先级等,同时还提供了一些方法来控制线程的行为。 ### Thread 优先级 线程的优先级决定了调度器选择线程进行执行的先后顺序。 ### 后台线程 后台...

    Java正则表达式详解

    ### Java正则表达式详解 #### 一、正则表达式基础知识 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,用于文本的查找与替换、...随着未来JDK版本的更新,正则表达式支持将变得更加完善和便捷。

    百度2019年最新面试题库

    #### JRE、JDK、JVM及JIT之间有什么不同 - **JRE(Java Runtime Environment)**: 包括Java虚拟机(JVM)和Java核心类库,是运行Java程序的基础环境。 - **JDK(Java Development Kit)**: 包含JRE,还包括编译器、...

    java面试进阶讲义

    - **创建方式**:首先通过 `Pattern.compile(regex)` 方法编译正则表达式,然后通过 `matcher(input)` 方法获取 `Matcher` 实例来进行匹配。 ##### 8、Final、Finally、Finalize() - **final 关键字**:用于声明...

    java面试必会200题.docx

    - Java中使用`java.util.regex`包来实现正则表达式的匹配。 31. **什么是懒加载(LazyLoading)** - 懒加载是一种优化技术,在真正需要数据之前不加载数据,从而减少不必要的开销。 32. **什么是尾递归,为什么...

Global site tag (gtag.js) - Google Analytics