Java正则表达式基本应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java正则表达式基本应用相关的知识,希望对你有一定的参考价值。

一、概述

  正则表达式因为其强大的字符串处理能力,刚开始被被广泛地应用到各种UNIX工具中,如大家熟知的 Perl脚本语言 。后来正则表达式在各种 计算机语言 和各种应用领域得到了广泛的应用和发展,目前的主流操作系统(Linux, Unix、Windows等)、目前主流的开发语言( php 、 C# 、 Java 、 C++ 、 VB 、 javascript 、 Ruby 以及 python 等)、各种应用软件,都支持正则表达式。
  利用正则表达式可以实现强大的字符串处理能力。如字符串的匹配、字符串的替换、指定字符串的查找、字符串的分割等。Java语言同样对正则表达式提供了很强的支持,其语法格式类似Perl 中的正则表达式格式。实际上正则表达式有通用的语法规范,各种语言在实现上只是一些细节的区别。
  本文主要介绍如何在java中使用正则表达式。
 
二、应用场景1:判断一个字符串中是否包含特定的子串
解决方案:
1、编写出一个相应的正则表达式
2、利用String的matches方法进行检查
 
例1:判断一个字符串中是否包含hello这个单词
String regex = ".*hello.*";   //正则表达式
boolean result = str.matches(regex);  //str为待判断的字符串
当str的内容为如下字符串时,都可以匹配上:
hello
hello,world
hi,hello
hi,hello,world
 
例2:判断一个字符串中是否包含 yyyy-mm-dd 这样的日期格式
首先了解下数字的正则表达式表示方式, \d   代表数字 等价于[0-9],表示可以是0到9之间的任意数字。在java中,需要用\\代表\
再了解下出现次数的表达方式
?  表示 前面的内容出现0次或1次
+  表示前面的内容出现1次或更多次
*  表示前面的内容出现0次或任意次
{n}  表示有且只能出现n次
{m,n}  表示出现的次数大于等于m,小于等于n
{m,}  表示至少出现m次
 
根据这些规则,上面例子的正则表达式的表示方式就是  .*\d{4}-\d{2}-\d{2}.* ,对应的java代码如
String str="today is 2016-01-22,it is";
String regex = ".*\\d{4}-\\d{2}-\\d{2}.*";
boolean result = str.matches(regex);
 
 
 
 
  
  

以上是关于Java正则表达式基本应用的主要内容,如果未能解决你的问题,请参考以下文章

php正则表达式基本知识与应用详解

正则表达式

网络爬虫 | 正则表达式

正则表达式

python shell 正则表达式 攫取复杂字符串特定子串

Python 模式匹配与正则表达式