0
我需要分割并用分号替换字符串。我需要找到String内的所有分号。在双引号之间找到分号JAVA
我有一些字符串或与此类似:
"003628;164332;BICICLETA;000000;\"TI;EH.55; MARC;E: 8ʽ7,7542;9ʽ2;,4)\"2015-03-03 12:25:25.0;2016-03-10 09:13:35.0"
这里是我的代码:
String p = "(\"[^\"]+);([^\"]+\")"
String cad = "003628;164332;BICICLETA;000000;\"TI;EH.55; MARC;E: 8ʽ7,7542;9ʽ2;,4)\"2015-03-03 12:25:25.0;2016-03-10 09:13:35.0"
Pattern pat = Pattern.compile(p)
Matcher mat = pat.matcher(cad)
cad.replaceAll(p, "$1#SEMICOLON#$2")
错误的结果是:
003628;164332;BICICLETA;000000;"TI;EH.55; MARC;E: 8ʽ7,7542;9ʽ2#SEMICOLON#,4)"2015-03-03 12:25:25.0;2016-03-10 09:13:35.0
正确的结果应该是:
003628;164332;BICICLETA;000000;"TI#SEMICOLON#EH.55#SEMICOLON# MARC#SEMICOLON#E: 8ʽ7,7542#SEMICOLON#9ʽ2#SEMICOLON#,4)"2015-03-03 12:25:25.0;2016-03-10 09:13:35.0
我的代码有什么问题?我无法弄清楚。
谢谢!,但这只适用于这种情况。 在另一种情况下将失败,例如: 25674; 1530; 7; OE00358EST165 ;;“(5; A; XXE:1'3,33; 8'2; 2)”; M535i/1,0; 0; 23/06/2008; 15/12/2015 –
嗯,它适用于我“25674; 1530; 7; OE00358EST165 ;;”(5; A; XXE:1'3,33; 8'2;,2)“; M535i/1 ; 0; 0; 23/06/2008; 15/12/2015" ;将产生25674; 1530; 7; OE00358EST165 ;;(5#SEMICOLON#A#SEMICOLON#XXE:1'3,33#SEMICOLON#8'2#SEMICOLON#,2); M535i/1; 0; 0; 23/06/2008; 15/12/2015 –