• 正则表达式


      1 package regex;
      2 
      3 import java.util.regex.Matcher;
      4 import java.util.regex.Pattern;
      5 
      6 /**
      7  * 正则表达式
      8  * @author XSW
      9  *
     10  */
     11 public class Test {
     12 
     13     
     14     public static void main(String[] args) {
     15         //正则表达式
     16         /*System.out.println("asd".matches("..."));
     17     
     18         p("a8888634a".replaceAll("\d", "--"));
     19         
     20         Pattern pattern = Pattern.compile("[a-z]{3}");
     21         
     22         Matcher matcher = pattern.matcher("cde");
     23         
     24         p(matcher.matches());
     25         
     26         p("add".matches("[a-z]{3}"));
     27     */
     28         
     29         //认识一下 . * ? +
     30         
     31     /*    p("a".matches("."));
     32         p("aaa".matches("aaa"));
     33         p("aaa".matches("a*"));
     34         p("aaa".matches("a?"));
     35         p("".matches("a?"));
     36         p("aaa".matches("a+"));
     37         p("".matches("a*"));
     38         p("aaaaa".matches("a*"));
     39         p("1234213434254356623523".matches("\d{3,100}"));
     40         p("192.136.22a".matches("\d{1,3}\.\d{1,3}\.\d{1,3}"));
     41         p("192".matches("[0-2][0-9][0-9]"));
     42         */
     43         
     44         //范围
     45         /*p("a".matches("[a-z]"));
     46         p("a".matches("[^abc]"));
     47         p("A".matches("[a-zA-Z]"));
     48         p("A".matches("[a-z]|[A-Z]"));
     49         p("A".matches("[a-z[A-Z]]"));
     50         p("A".matches("[A-Z&&[ARF]]"));
     51         p("R".matches("[A-Z&&[RFG]]"));
     52         p("X".matches("[A-Z&&[ARF]]"));
     53         */
     54         //认识 s w d 
     55     /*    p(" 	
    f".matches("\s{4}"));
     56         p(" ".matches("\S"));
     57         p("asd_123".matches("\w{7}"));
     58         p("abc333&^$".matches("[a-z]{3}\d+[&^$]+"));
     59         p("\".matches("\\"));
     60         */
     61         
     62         //边界
     63         /*p("hello world".matches("^h.*"));
     64         p("hello world".matches("^.*ld$"));
     65         p("hello world".matches("^h[ell]{1,3}o*"));
     66         p("hello world".matches("^h[ell]{1,3}o [\w]*"));
     67         
     68         p("hello world".matches("^h[a-z]{1,3}o\b.*"));
     69         p("helloworld".matches("^h[a-z]{1,3}o\b.*"));*/
     70         //空白行
     71         /*p(" 
    ".matches("^[\s&&[^\n]]*\n$"));*/
     72         //Email
     73         //p("asdfskfjgslakhjghjkj@hdjksfk.com".matches("[\w[.-]]+@[\w[.-]]+\.[\w]+"));
     74         //matches find lookingAt
     75         /**
     76          * matches 永远匹配整个字符串
     77          * find 找子串  当和matches一起用时有影响,可以使用reset(),使其回复原始状态,在用find
     78          * lookingAt  永远从头开始找
     79          */
     80         
     81         /*Pattern pattern = Pattern.compile("\d{3,5}");
     82         Matcher m= pattern.matcher("123-33453-234-00");
     83         
     84         p(m.matches());
     85         
     86         m.reset();
     87         
     88         p(m.find());*/
     89         /*
     90          * start()是找到子串的起始位置,
     91          * end()是找到的子串的末尾位置的下一个位置
     92          */
     93         /*System.out.println(m.start()+"--"+m.end());
     94         p(m.find());
     95         System.out.println(m.start()+"--"+m.end());
     96         p(m.find());
     97         System.out.println(m.start()+"--"+m.end());
     98         p(m.find());*/
     99         /*
    100          * 子串必须找到才能输出位置信息
    101          * 
    102          */
    103         //System.out.println(m.start()+"--"+m.end());
    104 
    105         /*p(m.lookingAt());
    106         p(m.lookingAt());
    107         p(m.lookingAt());
    108         p(m.lookingAt());*/
    109         
    110         //replacement (替换)
    111         
    112         /*Pattern pattern = Pattern.compile("java");
    113         Matcher m = pattern.matcher("java Java JaVA JAva ILoveJava you hateJava");
    114         
    115         while(m.find()){
    116             p(m.group());
    117         }*/
    118         
    119     /*    Pattern pattern = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
    120         Matcher m = pattern.matcher("java Java JaVA JAva ILoveJava you hateJava");
    121         //替换成大写JAVA
    122         p(m.replaceAll("JAVA"));*/
    123         //奇数位置上为大写,偶数上为小写
    124         /*Pattern pattern = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
    125         Matcher m = pattern.matcher("java Java JaVA JAva ILoveJava you hateJava fdjsfkjasgfhlkjhgefs");
    126         StringBuffer buffer = new StringBuffer();
    127         int i = 0;
    128         while(m.find()){
    129             i++;
    130             if(i%2 == 0){
    131                 m.appendReplacement(buffer, "java");
    132             }else{
    133                 m.appendReplacement(buffer, "JAVA");
    134             }
    135         }
    136         m.appendTail(buffer);
    137         p(buffer);*/
    138         
    139         //分组(group())
    140         /*Pattern pattern = Pattern.compile("\d{3,5}[a-z]{2}");
    141         Matcher m = pattern.matcher("123as-14324ni-890hh-00");
    142         while(m.find()){
    143             p(m.group());
    144         }*/
    145         //进行分组,分组规则compile("(\d{3,5})([a-z]{2})")在原来的分组规则上我加上了括号进行分组,(\d{3,5})数字为一组  ([a-z]{2})字母为一组;
    146         //怎么看是第几组,要看小括号的左半边数起compile("(\d{3,5})([a-z]{2})")这个总共有三个左半边,分别为第0组数字字母组,第1组数字组,第2组字母组;什么够不填默认为0
    147         Pattern pattern = Pattern.compile("(\d{3,5})([a-z]{2})");
    148         Matcher m = pattern.matcher("123as-14324ni-890hh-00");
    149         while(m.find()){
    150             p(m.group(2));
    151         }
    152     
    153     }
    154     
    155     public static void p(Object object){
    156         
    157         System.out.println(object);
    158     }
    159 }
  • 相关阅读:
    向量旋转公式推导
    atan函数与atan2函数
    UVALive 7040 Color (容斥原理+逆元+组合数+费马小定理+快速幂)
    关于source insight、添加.s和.S文件,显示全部路径、加入项目后闪屏幕
    linux内核设计与实现--进程调度 系统调用
    linux内核设计与实现--进程管理
    linux命令行与shell脚本编程大全---bash shell命令
    linux内核设计与实现--从内核出发
    Linux内核学习之路
    NAND FLASH均衡算法笔记(转)
  • 原文地址:https://www.cnblogs.com/XiDaPuBen/p/8678246.html
Copyright © 2020-2023  润新知