博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式,字符串中需要两个反斜杠“\\d”
阅读量:6974 次
发布时间:2019-06-27

本文共 1667 字,大约阅读时间需要 5 分钟。

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

"^.*?\\.(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}), 输出结果少了一个 反斜杠,说明索引号字符串中的\\会转义!

转载地址:http://oeesl.baihongyu.com/

你可能感兴趣的文章
HDU 3336 Count the string 查找匹配字符串
查看>>
ExpandoObject对象的JSON序列化
查看>>
微信公众平台开发者文档
查看>>
c# 反射取其他项目的资源文件
查看>>
Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008
查看>>
在一个未知的CentOS服务器中如何加上PHP的openssl扩展
查看>>
高性能网站构建实战文摘
查看>>
数学图形(1.4)心形线
查看>>
调试WebService
查看>>
学习的方法
查看>>
Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结
查看>>
手机SD卡损坏补救措施
查看>>
ORACLE数据库不同故障下的恢复总结
查看>>
使用eclipse转换普通项目为web项目
查看>>
MVC入门教程-视图中的Layout使用
查看>>
2015年第4本(英文第3本):Godfather教父
查看>>
Python Select 解析
查看>>
ASP.NET 5中的ASP.NET Bundles跑到哪里去了?
查看>>
FastDFS概要
查看>>
LNMP的的编译安装全过程
查看>>