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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© asvsass 中级黑马   /  2013-10-12 16:41  /  1707 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 asvsass 于 2013-10-12 16:42 编辑

就是 用点符号.切割   在正则表达式中点符号代表一个特殊字符 所以要转义字符  \.  但是\.不是把点转义成正常的点符号了吗  为什么要\\.
这样 点前面的\不就是个正常的反斜杠  还怎么转义

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 继续提出好问题哦

查看全部评分

7 个回复

倒序浏览
因为正则表达式的. 并不是.的意思,它表示任何字符,你要把他转变成正则表达式的.符号就要\. 而在字符串里\又不能直接用\表示,必须转义\\才表示一个\ ,所以用字符串split切割.的时候需要用"\\."表示
回复 使用道具 举报
(2)        不能用“.”直接切割,因为“.”在正则表达式中是由特殊意义:任意字符,需要转意,即“\.”而”\”在正则表达式中也是有特殊意义的,所以还需要再次转意  即  \\.   
说在正则表达式中,反斜杠只要出现,必须是成对的,
回复 使用道具 举报
\\.第一个反斜杠把第二个反斜杠 转义成普通的反斜杠 普通股的反斜杠就不能转义点符号了吧
回复 使用道具 举报
对于java源码来说'\'表示转义字符,因此必须使用"\\"来和java的的字节码解释器加一区分,时正则表达式不被jvm解释,保证正则表达式被正确解释。
回复 使用道具 举报
在java中编写正则,先要被java虚拟机所识别为字符串,再传到虚拟机内置的正则解释引擎中。而在java虚拟机中,字符串中的“\”是把下一个字符转义的意思,如果写成“\.”这样的话,就是一个“.”的意思,但是如果虚拟机把一个“.”传给正则解释引擎的话,在正则解释引擎中,一个“.”就是任意字符的意思了。而写成“\\.”这样的话,虚拟机就会把第一个“\”解释为转义字符,把后面那个“\”转义为普通反斜杠,这样第二个“\”就不再具有转义的功能了,然后传到正则解释引擎时就是“\.”了,在正则中反斜杠和点的组合就会转义为普通点了........^_^

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
To 金牌黑马 2013-10-13 13:51:16
7#
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
回复 使用道具 举报
To 金牌黑马 2013-10-14 09:24:32
8#
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马