zoukankan      html  css  js  c++  java
  • java正则表达式

    字符
    x 字符 x
    \ 反斜线字符
    n 带有八进制值 0 的字符 n (0 <= n <= 7)
    nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
    mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
    xhh 带有十六进制值 0x 的字符 hh
    uhhhh 带有十六进制值 0x 的字符 hhhh
    制表符 ('u0009')
    新行(换行)符 ('u000A')
    回车符 ('u000D')
    f 换页符 ('u000C')
    a 报警 (bell) 符 ('u0007')
    e 转义符 ('u001B')
    cx 对应于 x 的控制符
    字符类
    [abc] ab 或 c(简单类)
    [^abc] 任何字符,除了 ab 或 c(否定)
    [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
    [a-d[m-p]] a 到 d 或 m 到 p[a-dm-p](并集)
    [a-z&&[def]] de 或 f(交集)
    [a-z&&[^bc]] a 到 z,除了 b 和 c[ad-z](减去)
    [a-z&&[^m-p]] a 到 z,而非 m 到 p[a-lq-z](减去)
    预定义字符类
    . 任何字符(与行结束符可能匹配也可能不匹配)
    d 数字:[0-9]
    D 非数字: [^0-9]
    s 空白字符:[ x0Bf ]
    S 非空白字符:[^s]
    w 单词字符:[a-zA-Z_0-9]
    W 非单词字符:[^w]
    Greedy 数量词
    X? X,一次或一次也没有
    X* X,零次或多次
    X+ X,一次或多次
    X{n} X,恰好 n 次
    X{n,} X,至少 n 次
    X{n,m} X,至少 n 次,但是不超过 m 次
    Reluctant 数量词
    X?? X,一次或一次也没有
    X*? X,零次或多次
    X+? X,一次或多次
    X{n}? X,恰好 n 次
    X{n,}? X,至少 n 次
    X{n,m}? X,至少 n 次,但是不超过 m 次

    例子

      1 package com.xiaostudy;
      2 
      3 import java.util.regex.Matcher;
      4 import java.util.regex.Pattern;
      5 
      6 public class MyPattern {
      7 
      8     public static void main(String[] args) {
      9     }
     10 
     11     private static void demo_Reluctant() {
     12         // 检验规则,单个字母,“+”表示:0次或多次,后面多加一个“?”与不加的区别是:不加的话表示只匹配一次,加的话表示匹配多次
     13         String regex = ".+?222";
     14         // 要检验的对象
     15         String str = "xx222xx222xx222xx222";
     16         // 编译正则表达式
     17         Pattern pattern = Pattern.compile(regex);
     18         // 创建匹配器,给定输入与此模式的匹配
     19         Matcher matcher = pattern.matcher(str);
     20         while (matcher.find())
     21             System.out.println(matcher.start() + "=====" + matcher.end());
     22         // 匹配,返回结果
     23         boolean b = matcher.matches();
     24         if (b)
     25             System.out.println(true);
     26         else
     27             System.out.println(false);
     28     }
     29 
     30     private static void demo_aBAb() {
     31         // 检验规则,字母集,“+”表示:0个或多个
     32         String regex = "[abcd]+";
     33         // 要检验的对象
     34         String str = "adbcdbaDACDBDAC";
     35         // 编译正则表达式,不区分大小写
     36         Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
     37         // 创建匹配器,给定输入与此模式的匹配
     38         Matcher matcher = pattern.matcher(str);
     39         // 匹配,返回结果
     40         boolean b = matcher.matches();
     41         if (b)
     42             System.out.println(true);
     43         else
     44             System.out.println(false);
     45     }
     46 
     47     private static void demo_abcd() {
     48         // 检验规则,字母集,“+”表示:0个或多个
     49         String regex = "[abcd]+";
     50         // 要检验的对象
     51         String str = "adbcdabdcddbadbc";
     52         // 编译正则表达式
     53         Pattern pattern = Pattern.compile(regex);
     54         // 创建匹配器,给定输入与此模式的匹配
     55         Matcher matcher = pattern.matcher(str);
     56         // 匹配,返回结果
     57         boolean b = matcher.matches();
     58         if (b)
     59             System.out.println(true);
     60         else
     61             System.out.println(false);
     62     }
     63 
     64     private static void demo_123no() {
     65         // 检验规则,非数字集,“+”表示:0个或多个
     66         String regex = "[^1-9]+";// 等价于\D+
     67         // 要检验的对象
     68         String str = "+sdoi#$@%@#";
     69         // 编译正则表达式
     70         Pattern pattern = Pattern.compile(regex);
     71         // 创建匹配器,给定输入与此模式的匹配
     72         Matcher matcher = pattern.matcher(str);
     73         // 匹配,返回结果
     74         boolean b = matcher.matches();
     75         if (b)
     76             System.out.println(true);
     77         else
     78             System.out.println(false);
     79     }
     80 
     81     private static void demo_123() {
     82         // 检验规则,数字集,“+”表示:0个或多个
     83         String regex = "[1-9]+";// 等价于\d+
     84         // 要检验的对象
     85         String str = "123";
     86         // 编译正则表达式
     87         Pattern pattern = Pattern.compile(regex);
     88         // 创建匹配器,给定输入与此模式的匹配
     89         Matcher matcher = pattern.matcher(str);
     90         // 匹配,返回结果
     91         boolean b = matcher.matches();
     92         if (b)
     93             System.out.println(true);
     94         else
     95             System.out.println(false);
     96     }
     97 
     98     private static void demo_2() {
     99         // 检验规则,单个数字
    100         String regex = "[1-9]";
    101         // 要检验的对象
    102         String str = "2";
    103         // 编译正则表达式
    104         Pattern pattern = Pattern.compile(regex);
    105         // 创建匹配器,给定输入与此模式的匹配
    106         Matcher matcher = pattern.matcher(str);
    107         // 匹配,返回结果
    108         boolean b = matcher.matches();
    109         if (b)
    110             System.out.println(true);
    111         else
    112             System.out.println(false);
    113     }
    114 
    115     private static void demo_nm() {
    116         // 检验规则,单个字母,“{n,m}”表示:出现n次到m次之间,包括他们本身
    117         String regex = "x{3,5}";
    118         // 要检验的对象
    119         String str = "xxxxx";
    120         // 编译正则表达式
    121         Pattern pattern = Pattern.compile(regex);
    122         // 创建匹配器,给定输入与此模式的匹配
    123         Matcher matcher = pattern.matcher(str);
    124         // 匹配,返回结果
    125         boolean b = matcher.matches();
    126         if (b)
    127             System.out.println(true);
    128         else
    129             System.out.println(false);
    130     }
    131 
    132     private static void demo_n0() {
    133         // 检验规则,单个字母,“{n,}”表示:出现n次或以上
    134         String regex = "x{3,}";
    135         // 要检验的对象
    136         String str = "xxxx";
    137         // 编译正则表达式
    138         Pattern pattern = Pattern.compile(regex);
    139         // 创建匹配器,给定输入与此模式的匹配
    140         Matcher matcher = pattern.matcher(str);
    141         // 匹配,返回结果
    142         boolean b = matcher.matches();
    143         if (b)
    144             System.out.println(true);
    145         else
    146             System.out.println(false);
    147     }
    148 
    149     private static void demo_n() {
    150         // 检验规则,单个字母,“{n}”表示:就出现n次
    151         String regex = "x{3}";
    152         // 要检验的对象
    153         String str = "xxx";
    154         // 编译正则表达式
    155         Pattern pattern = Pattern.compile(regex);
    156         // 创建匹配器,给定输入与此模式的匹配
    157         Matcher matcher = pattern.matcher(str);
    158         // 匹配,返回结果
    159         boolean b = matcher.matches();
    160         if (b)
    161             System.out.println(true);
    162         else
    163             System.out.println(false);
    164     }
    165 
    166     private static void demo_xxx0() {
    167         // 检验规则,单个字母,“+”表示:0次或多次
    168         String regex = "x+";
    169         // 要检验的对象
    170         String str = "xxx";
    171         // 编译正则表达式
    172         Pattern pattern = Pattern.compile(regex);
    173         // 创建匹配器,给定输入与此模式的匹配
    174         Matcher matcher = pattern.matcher(str);
    175         // 匹配,返回结果
    176         boolean b = matcher.matches();
    177         if (b)
    178             System.out.println(true);
    179         else
    180             System.out.println(false);
    181     }
    182 
    183     private static void demo_xxx() {
    184         // 检验规则,单个字母,“*”表示:一次或多次
    185         String regex = "x*";
    186         // 要检验的对象
    187         String str = "xxx";
    188         // 编译正则表达式
    189         Pattern pattern = Pattern.compile(regex);
    190         // 创建匹配器,给定输入与此模式的匹配
    191         Matcher matcher = pattern.matcher(str);
    192         // 匹配,返回结果
    193         boolean b = matcher.matches();
    194         if (b)
    195             System.out.println(true);
    196         else
    197             System.out.println(false);
    198     }
    199 
    200     private static void demo_x_01() {
    201         // 检验规则,单个字母,“?”表示:一次或一次都没有
    202         String regex = "x?";
    203         // 要检验的对象
    204         String str = "x";
    205         // 编译正则表达式
    206         Pattern pattern = Pattern.compile(regex);
    207         // 创建匹配器,给定输入与此模式的匹配
    208         Matcher matcher = pattern.matcher(str);
    209         // 匹配,返回结果
    210         boolean b = matcher.matches();
    211         if (b)
    212             System.out.println(true);
    213         else
    214             System.out.println(false);
    215     }
    216 
    217     private static void demo_00() {
    218         // 检验规则,单个字母,“.”表示:任何字符
    219         String regex = ".";
    220         // 要检验的对象
    221         String str = "x";
    222         // 编译正则表达式
    223         Pattern pattern = Pattern.compile(regex);
    224         // 创建匹配器,给定输入与此模式的匹配
    225         Matcher matcher = pattern.matcher(str);
    226         // 匹配,返回结果
    227         boolean b = matcher.matches();
    228         if (b)
    229             System.out.println(true);
    230         else
    231             System.out.println(false);
    232     }
    233 
    234     private static void demo_x() {
    235         // 检验规则,单个字母
    236         String regex = "x";// 等价于\w、[a-z]
    237         // 要检验的对象
    238         String str = "x";
    239         // 编译正则表达式
    240         Pattern pattern = Pattern.compile(regex);
    241         // 创建匹配器,给定输入与此模式的匹配
    242         Matcher matcher = pattern.matcher(str);
    243         // 匹配,返回结果
    244         boolean b = matcher.matches();
    245         if (b)
    246             System.out.println(true);
    247         else
    248             System.out.println(false);
    249     }
    250 
    251 }

  • 相关阅读:
    java构造方法和重写equals
    JVM,Java虚拟机基础知识新手入门教程(超级通熟易懂)
    ExtJS用Grid显示数据后如何自动选取第一条记录
    java 各种数据类型的互相转换
    提升思考力的8种日常训练法
    Java时间为什么从1970-01-01 00:00:00 000开始
    extjs计算两个DateField所间隔的月份(天数)
    如何快速理解他人代码,提高开发效率
    mybatis使用collection标签配置某个对象中的List集合类型的属性例子 <collection >
    将原有的Maven项目复制成另一个新名称的项目(包括:访问链接的时候也是使用的是新改的名称,而不是使用被复制项目的名称)
  • 原文地址:https://www.cnblogs.com/xiaostudy/p/9547187.html
Copyright © 2011-2022 走看看