这样的一个字符串该如何解析比较好? 这样的一个值:"begin""my value""end"begin前的"和end后的"需要去掉,中间的""需要变成"。这样的一个串来做比较的快和好呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 表达式:"("?)替换为:$1测试工具:http://www.regexlab.com/zh/replshop.asp?pat=%22%28%22%3F%29&rto=%241&txt=%u8FD9%u6837%u7684%u4E00%u4E2A%u503C%uFF1A%22begin%22%22my%20value%22%22end%22更多帮助,请参考正则表达式文档:http://www.regexlab.com/zh/regref.htm 如果不考虑 my value 内容存在的其他特例其实就是把 "begin" 替换为 begin把 "end" 替换为 endpackage xdoptest;public class RepAL { public static void main(String[]args) { String s="\"begin\"\"my value\"\"end\""; System.out.println(s); System.out.println(s.replaceAll("\"begin\"","begin").replaceAll("\"end\"","end")); }} "begin""my value""end"begin"my value"end public class test001 { public static void main(String[] args) { StringBuffer s = new StringBuffer("“begin”“my value”“end”"); System.out.println(s); s.delete(0,1); s.delete(20,21); s.replace(5,7,"“"); s.replace(14,16,"”"); System.out.println(s); }}输出结果:“begin”“my value”“end”begin“my value”end 对的,用stringbuffer的各种方法总归能解决问题的。 楼主的意思是,类似"AAA""BBB"经过处理要变成AAA"BBB?那么如果是"AAA""BBB或者是"AAA"BBB"这样的串应该怎么处理? 我前面的回帖能够满足楼主的要求,搂主没有看到吗?代码如下:String str = "\"begin\"\"my value\"\"end\"\"AAA\"\"BBB\"";str = str.replaceAll("\"(\"?)", "$1");System.out.println(str); 谢谢:sswater(光杆兵) ,可是不太明白,这个"\"(\"?)", "$1"是什么意思。怎么构成了这样的一个表达式,请讲讲 表达式:"("?)讲解:(1). 其实就类似 "ab?" 能够匹配 "a" 和 "ab",这个应该理解吧。(2). ""? 可以匹配 " 和 ""(3). "("?) 其实就是把 "? 括起来了而已。进行替换的时候,"$1" 表示第一个括号内的表达式匹配到的内容,"$2" 表示第二个括号的表达式匹配到的内容,……以此类推在本贴中:如果只有 1个 " 那么,括号内的部分 ("?) 实际上就是匹配到了空字符串如果有 2 个 "" 那么,括号内的部分 ("?) 匹配到了第二个引号因此:匹配到2个引号时,$1 代表1个引号匹配到1个引号时,$1 代表空字符串更多帮助,欢迎参考我写的文章:http://www.regexlab.com/zh/regref.htm "\"(\"?)"看起来虽然乱,其实就是把 "("?) 写在 java 代码中作为字符串常量时,需要将 " 写成 \",再加上前后一个引号,就显得复杂:" \" ( \" ? ) " => "\"(\"?)" 面向对象读取xml文件的内容是出现问题 一个小时了还没解决 急死人了 JAVA里有没有类或方法可以判断是否是闰年 有关Java的一个小问题!在线等候! 很基础的问题。进来留言都有分 关于|和&的疑问 关于JAR的问题,为什么终端窗口都没有了? 参数的传递 sharetop斑竹,今天JAVA版都渐渐回复次序了,不能再删帖子了。声援手无寸铁的网友!!! 请问我用jbuilder5作的应用程序如何发布啊?(就象VB的打包哪种) log4j配置文件!!! 撒分的Java基本概念题(交换两个变量),给出最简单的方法者(必须要正确)得分
"("?)替换为:
$1测试工具:
http://www.regexlab.com/zh/replshop.asp?pat=%22%28%22%3F%29&rto=%241&txt=%u8FD9%u6837%u7684%u4E00%u4E2A%u503C%uFF1A%22begin%22%22my%20value%22%22end%22更多帮助,请参考正则表达式文档:
http://www.regexlab.com/zh/regref.htm
把 "end" 替换为 endpackage xdoptest;public class RepAL {
public static void main(String[]args) {
String s="\"begin\"\"my value\"\"end\"";
System.out.println(s);
System.out.println(s.replaceAll("\"begin\"","begin").replaceAll("\"end\"","end"));
}
}
begin"my value"end
StringBuffer s = new StringBuffer("“begin”“my value”“end”");
System.out.println(s);
s.delete(0,1);
s.delete(20,21);
s.replace(5,7,"“");
s.replace(14,16,"”");
System.out.println(s);
}
}输出结果:
“begin”“my value”“end”
begin“my value”end
str = str.replaceAll("\"(\"?)", "$1");
System.out.println(str);
"("?)讲解:
(1). 其实就类似 "ab?" 能够匹配 "a" 和 "ab",这个应该理解吧。
(2). ""? 可以匹配 " 和 ""
(3). "("?) 其实就是把 "? 括起来了而已。进行替换的时候,"$1" 表示第一个括号内的表达式匹配到的内容,"$2" 表示第二个括号的表达式匹配到的内容,……以此类推在本贴中:
如果只有 1个 " 那么,括号内的部分 ("?) 实际上就是匹配到了空字符串
如果有 2 个 "" 那么,括号内的部分 ("?) 匹配到了第二个引号因此:
匹配到2个引号时,$1 代表1个引号
匹配到1个引号时,$1 代表空字符串更多帮助,欢迎参考我写的文章:
http://www.regexlab.com/zh/regref.htm