一、概述

  正则表达式因为其强大的字符串处理能力,刚开始被被广泛地应用到各种UNIX工具中,如大家熟知的 Perl脚本语言 。后来正则表达式在各种 计算机语言 和各种应用领域得到了广泛的应用和发展,目前的主流操作系统(Linux, Unix、Windows等)、目前主流的开发语言( PHP 、 C# 、 Java 、 C++ 、 VB 、 Javascript 、 Ruby 以及 python 等)、各种应用软件,都支持正则表达式。
  利用正则表达式可以实现强大的字符串处理能力。如字符串的匹配、字符串的替换、指定字符串的查找、字符串的分割等。Java语言同样对正则表达式提供了很强的支持,其语法格式类似Perl 中的正则表达式格式。实际上正则表达式有通用的语法规范,各种语言在实现上只是一些细节的区别。
  本文主要介绍如何在java中使用正则表达式。
 
二、正则表达式常见元字符说明
1、数字的正则表达式表示方式: \d   代表1个数字 等价于[0-9],表示可以是0到9之间的任意数字。在java中,需要用\\代表\
 
2、 . 代表任意字符
 
3、出现次数的表达方式:
?  表示 前面的内容出现0次或1次
+  表示前面的内容出现1次或更多次
*  表示前面的内容出现0次或任意次
{n}  表示有且只能出现n次
{m,n}  表示出现的次数大于等于m,小于等于n
{m,}  表示至少出现m次
 
如 .* 就代表任意长度的字符串(也包括空串,因为*是表示0次或任意次)
 
4、分组和或
比如检验一个数值符合如下规定: 可以是整数(最多5位,最少1位),也可以带或不带小数(最多2位,最少1位)。
如 下面都是合法的: 12  ,  12.2  ,  12 .23  , 12345 ,  12345.23
但下面都是非法的: 123456   12.345
这样的正则表达式就可以这样来写   \\d{1,5}|\\d{1,5}\\.\\d{1,2}
说明:  | 表示或的关系,只要匹配 | 两端的任何一个即可。
 如果分组只对局部有效,可以 用  () 把局部表达式括气来作为独立的一组使用。
如  a(1|2)b 表示  a1b , a2b都是合法的,
a1|2b 则表示a1, 2b都是合法的
 
二、常用应用场景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 这样的日期格式
String str="today is 2016-01-22,it is";
String regex = ".*\\d{4}-\\d{2}-\\d{2}.*";
boolean result = str.matches(regex);
 
例3:判断一个字符串只能包含大小写字符、空格、点 这些字符
String regex = "([a-z]|[A-Z]| |\\.)+";
注意:中间连续的两个 | 之间有空格
 
 
  
  

Java正则表达式基本应用的更多相关文章

  1. java正则表达式

    java正则表达式 1.Java正则表达式的语法与示例:  http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式:  http://www.runo ...

  2. Java正则表达式入门——转自RUNOOB.COM

    Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...

  3. Java 正则表达式详解

    Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...

  4. 【转】详解Java正则表达式语法

    (转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...

  5. java正则表达式【大全】

    [正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...

  6. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  7. JAVA正则表达式:Pattern类与Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  8. Java 正则表达式[转载]

    PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...

  9. Java正则表达式的应用

    在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...

  10. Java正则表达式实用教程

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.java.util.regex包主要包括以下三个类:Pattern.Matcher和PatternSynta ...

随机推荐

  1. Java跨域以及实现原理

    最近研究了一下跨域,没接触之前我的印象就是配合单点登录的一种方式,后来在网上看到资料才知道不仅仅是这一种,用法很多,具体的可以去网上搜索. 一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访 ...

  2. 「OC」点语法和成员变量的作用域

    一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObje ...

  3. Software Version --hdu1976

    #include using namespace std; int main() { int T; cin>>T; int a1,b1,c1; int a2,b2,c2; while(T- ...

  4. easyui好例子,值得借鉴

    http://www.cnblogs.com/wuhuacong/p/3317223.html

  5. 移动平台WEB前端开发技巧汇总(转)

    最近我很关注移动前端的知识,但做为一个UI设计师和web前端工作人员没有这个工作环境接触,做为门外汉,网上系统的知识也了了,一直有种雾里看花的感觉,见到本文,我自己是奉为经典.所以我分享之后又专门打笔 ...

  6. python手记(41)

    python opencv图片融合 #!/usr/bin/env python #-*- coding: utf-8 -*- #code:myhaspl@qq.com import cv2 impor ...

  7. socket.io+angular.js+express.js做个聊天应用(四)

    接着上一篇 使用angularjs构建聊天室的client <!doctype html> <html ng-app="justChatting"> < ...

  8. js 验证手机号 以及身份证正则表达式

    手机号:① /^1(3[0-9]{9}|5[0-35-9][0-9]{8}|7[07][0-9]{8}|8[25-9][0-9]{8})$/ ② /^1(3\d|5[0-35-9]|7[07]|8[2 ...

  9. javascript:void(0)的作用示例

    在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#",但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面顶 ...

  10. android:music

    package com.terry; import java.io.File; import java.io.FileFilter; import java.io.IOException; impor ...