A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 75100313 高级黑马   /  2013-12-27 15:40  /  1229 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 75100313 于 2013-12-27 15:43 编辑
  1. public static void function_2() {
  2.                 String str1 = "zhangsan.xiaoqiang.zhaoliu";
  3.                 String[] names2 = str1.split("\\.");// 按照点分割
  4.                 for (String name : names2) {
  5.                         System.out.println(name);
  6.                 }

  7.         }
复制代码
我想问问这个正则表达式 以点来分割  谁能帮我分析分析  如何去理解\\.就是以点来分割?分别说一下 第一个\和第二个\的作用分别怎么去理解 ,他们的组合顺序是怎样的,比如是这样(\)(\.)?



评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

倒序浏览
split(String regex)
          根据给定正则表达式的匹配拆分此字符串。

参数是正则表达式,所以就很容易理解。
做了2次转义,
第一次"."本身是特殊字符,需要一次转义
第二次 正则表达式对  regex  本身要进行一次编译,才能转化为它能识别的内容

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
小骗子 发表于 2013-12-27 16:03
split(String regex)
          根据给定正则表达式的匹配拆分此字符串。

我可以这么理解?
本来点就是特殊字符  \. 转义一次 才表示 点
然后再来一个\  是正则表达式 需要的

是这个意思?
回复 使用道具 举报
本帖最后由 郭振华 于 2013-12-27 16:30 编辑

其实真正的表达示就是
  1. /.
复制代码
。但是虚拟机要对"/"进行特殊处理,所以"//."。个人理解
回复 使用道具 举报
因为 .  是正则中的特殊字符,所以要用转义字符 \ 来标示  .   表示这是一个   .  没有特殊含义。为\.

但是  要注意  \  也是特殊字符,  它也有特殊含义。  所以 就又需要一个  \ 来标示   \. 中的\ 只是一个单纯的\没有特殊含义。
\\.      我的理解是   JVM 看见第一个 \  就说  我知道  后面的是被转义过的 要原样的。将第二个\ 理解没有特殊含义。接着向后走,看见一个 .  。这是有特殊含义的啊。恩,就向前找,发现有个\。
  这个\就成了转义字符。JVM就说。恩  这个 .  是要原样的。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报 1 0
其LovE斤 发表于 2013-12-27 18:08
因为 .  是正则中的特殊字符,所以要用转义字符 \ 来标示  .   表示这是一个   .  没有特殊含义。为\.

但 ...

谢谢女女  很生动啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马