zoukankan      html  css  js  c++  java
  • Java正则表达式基本应用

    一、概述

      正则表达式因为其强大的字符串处理能力,刚开始被被广泛地应用到各种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]| |\.)+";
    注意:中间连续的两个 | 之间有空格
     
     
      
      
  • 相关阅读:
    一篇关于兼容问题的基础总结
    js数组遍历some,foreach,map,filter,every对比
    webpack笔记1
    前段集成解决方案grunt+yeoman初步认识
    简单的Linq笔记
    .net 使用Json(),maxJsonLength属性设置的值问题
    .net using使用小结
    根据某个字段的长度,且不包含”,“,作为条件查询
    JS Replace() 全部替换字符的用法
    SQL分页查询,纯Top方式和row_number()解析函数的使用及区别
  • 原文地址:https://www.cnblogs.com/51kata/p/5152888.html
Copyright © 2011-2022 走看看