-5
我正在寻找一种很好的方法来按点分割字符串,但不要触及用重音符号(”`“)包裹的部分。我不确定是否有正则表达式来做,所以其他方法也是受欢迎的。如何按点分割字符串,但用“`原封不动地保留零件
换句话说,我想转换此:
"a.`b.html`.c.`d.html`"
这样:
["a", "b.html", "c", "d.html"]
我正在寻找一种很好的方法来按点分割字符串,但不要触及用重音符号(”`“)包裹的部分。我不确定是否有正则表达式来做,所以其他方法也是受欢迎的。如何按点分割字符串,但用“`原封不动地保留零件
换句话说,我想转换此:
"a.`b.html`.c.`d.html`"
这样:
["a", "b.html", "c", "d.html"]
我会用'性格分裂,然后删除开头和结尾的点。对于此我使用replaceAll method:
String input = "a.`b.html`.c.`d.html`";
String[] values = Arrays.stream(input.split("`")) //split by the `
.map(s -> s.replaceAll("(^\\.|\\.$)", "")) //remove dots
.collect(Collectors.toList())
.toArray(new String[0]);
System.out.println(Arrays.toString(values));
输出:
并[a,b.html,C,d.html]
当字符串不包含任何'''时它不起作用。我没有在我的问题中提到它,但该字符串也可以是“a.b.c.d”,并且也应该正确拆分。不管怎么说,还是要谢谢你。 – akn
分裂由' “'”'然后检查字符串看起来是“string.string”还是“string.”或“.string.”。对于第一个示例,请勿删除这些点,但请为其余部分执行 – XtremeBaumer
您尝试过任何操作吗? – tnw
如果没有转义,请使用:https://regex101.com/r/LyOtjY/1 – anubhava