我用Java编程。
我正在努力改变这个:
Text0 Text1 " Text2 Text3 Text4 " Text5 Text6
进入这个:
Text0 Text1 "Text2 Text3 Text4" Text5 Text6
我尝试过前瞻和后视:
(小于?= \")\ S +(\ W * \ S * \ W *)\ S +(= \"?)
设法匹配引号内的所有文本,但切换到:
(小于?= \")\ S +(\ W * \ S * \ W *)\ S +(= \"?)
我收到错误。不知道为什么。
我对正则表达式的简短了解限制了我。帮助将不胜感激。
答案 0 :(得分:3)
不使用(仅)正则表达式更容易。
将字符串拆分为引号(-1以保留任何尾随的空白部分):
String[] parts = str.split("\"", -1);
修剪奇数元素:
for (int i = 1; i < parts.length; i += 2) {
parts[i] = parts[i].trim();
}
再次加入零件:
String newStr = String.join("\"", parts);