zoukankan      html  css  js  c++  java
  • 正则表达式,字符串中需要两个反斜杠“\d”

    这个正则表达式为什么会有两个反斜杠?

    "^.*?\.(jpg|png|bmp|gif)$"上面这个正则表达式为什么有两个反斜杠呢?反斜杠点.就能表示点.了,为什么还要在.前面多加一个?

    -----------------

    这要分两步
    首先字符串中的\被编译器解释为         -------》  第一步,编译器将字符串转变为“正则表达式”
    然后作为正则表达式,.又被正则表达式引擎解释为.   ----------------> 第二步,才开始把第一步的结果当做是正则表达式,开始进行匹配!

    如果在字符串里只写.的话,第一步就被直接解释为.,之后作为正则表达式被解释时就变成匹配任意字符了

         String line = "This order was placed for QT30012!bmmmb OK?8976a";
            String pattern = "(\d{2,3})";
    
            Pattern r = Pattern.compile(pattern);
    
            // Now create matcher object.
            Matcher m = r.matcher(line);
            if (m.find()) {
                System.out.println("Found value: " + m.group(0));
            }else{
                 System.out.println("NO MATCH");
            }        
    

      

     -------------------------------------------------------------------------2017年8月29日20:31:49 补充------------------------------------

    验证一下,我们的“两步论!”

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Sa {
    
        public static void main(String args[]) {
            // String to be scanned to find the pattern.
            String line = "This order was placed for QT30012!bmmmb OK?8976a";
            String pattern = "(\d{2,3})";
    
            System.out.println(pattern);
    
    /*        Pattern r = Pattern.compile(pattern);
    
            // Now create matcher object.
            Matcher m = r.matcher(line);
            if (m.find()) {
                System.out.println("Found value: " + m.group(0));
                System.out.println("Found value: " + m.group(1));
                System.out.println("Found value: " + m.group(2));
                System.out.println("Found value: " + m.group(3));
            } else {
                System.out.println("NO MATCH");
            }
         */
        }   
    }
    

      

     代码中是 (\d{2, 3}), 输出结果少了一个 反斜杠,说明索引号字符串中的\会转义!

  • 相关阅读:
    luogu 1169 棋盘制作(单调栈/悬线)
    poj 2769 感觉♂良好 (单调栈)
    hdu 5033 buiding(单调栈)
    hdu1506 直方图中最大的矩形 单调栈入门
    有线电视网(树形dp)
    洛谷P1220 关路灯(区间dp)
    【题解】NOI2009二叉查找树 + NOIP2003加分二叉树
    【题解】AHOI2009中国象棋
    【算法】Matrix
    【题解】WC2008游览计划
  • 原文地址:https://www.cnblogs.com/oxspirt/p/7450112.html
Copyright © 2011-2022 走看看