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

© NewDemo 中级黑马   /  2014-4-19 10:58  /  1309 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 NewDemo 于 2014-4-19 14:03 编辑

需求:有个字符串"c:\\\\pubwa\\\\txt\\\\\\abc\\defg"                       想要按照“\"来切

这样写"(\\)+"  为什么不对呢?那这里的正则表达式要如何写?

评分

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

查看全部评分

8 个回复

倒序浏览
正则表达式中反斜杠'\' 分割字符串
有一个字符串:   user\name要将其分开为user和name

方法如下:  String str = "user\\name";
                 String[] s = str.split("\\\\");
因为在正则表达式中"\"是有特殊意义的,如果想要表示"\",必须在它前面使用一个转义字符"\"
所以: 在字符串中,"\\"表示反斜杠的.

如果写为 String str  = "user\name";
                String[] s  = str.split("\\"); 是会出现 java.util.regex.PatternSyntaxException:异常.
回复 使用道具 举报
本帖最后由 NewDemo 于 2014-4-19 12:06 编辑
ノtrack 发表于 2014-4-19 11:03
正则表达式中反斜杠'\' 分割字符串
有一个字符串:   user\name要将其分开为user和name

感谢你的回答,但我上面的题目要怎么处理呢??
回复 使用道具 举报
本帖最后由 左拉 于 2014-4-19 12:16 编辑
  1. String[] strs="c:\\\\pubwa\\\\txt\\\\\\abc\\defg".split("\\+");
复制代码

这样行不行。
回复 使用道具 举报
先使用正则表示  把多个“\”替换为一个 让后用 split('\') 就行了
回复 使用道具 举报
  1. String[] strs="c:\\\\pubwa\\\\txt\\\\\\abc\\defg".split("\\+");
  2.                 for(String s:strs){
  3.                         System.out.println(s);
  4.                 }
复制代码



c:\\pubwa\\txt\\\abc\defg
这是打印结果,不对哦
回复 使用道具 举报
黑马-杞文明 发表于 2014-4-19 12:27
先使用正则表示  把多个“\”替换为一个 让后用 split('\') 就行了
  1. String s = "c:\\\\pubwa\\\\txt\\\\\\abc\\defg";
  2.                 s = s.replaceAll("\\+","\\");
  3.                 System.out.println(s);
复制代码



按照上面代码实现,替换出的结果是这样的
  1. c:\\pubwa\\txt\\\abc\defg
复制代码
回复 使用道具 举报
osully 金牌黑马 2014-4-19 13:46:42
8#
split("\\\\+")
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马