我正在尝试在spring boot中格式化XML响应
在此回复中,我想转换为
TitleBrief='arg Nallin' 106 HD'
来
TitleBrief='arg Nallin 106 HD'
我必须使用Regex才能做到这一点。请建议一个好的正则表达式。
我试过了,但它没有用。
String test="='Narg Mallin' '";
String pattern1="(=')(.[^']*)'";
System.out.println(test.replaceAll("(=')","=\"");
答案 0 :(得分:0)
实际上,ctwheels的正则表达式是解决这个问题的一种非常简单的方法,你可以像这样使用它:
String test = "'arg Nallin' 106 HD'";
test.replaceAll("(?<!=)'(?!$)",""); // Returns "'arg Nallin 106 HD'"
但是,在其他不支持lookbehinds(例如JavaScript)的编程语言中,这可能是您正在寻找的:
作为替代方案,您可以捕获所有文本,但需要删除的引号除外。
String test = "'arg Nallin' 106 HD'";
test.replaceAll("^([^']*'[^']*)'(.*'.*)$","$1$2"); // Returns "'arg Nallin 106 HD'"
/^([^']*'[^']*)'(.*'.*)$/
([^']*'[^']*)
- 第一个捕获组将:
[^']*
- 匹配除单引号外的所有内容。'
- 匹配您需要忽略的单引号。[^']*
- 匹配除单引号外的所有内容。 '
- 现在,此引号不在其他捕获组中,因此$1
中不会出现,$2
(.*'.*)
- 在引用后捕获其余内容,并确保至少剩下一个'
,因此我们可以确保该语句是String的实例