Java 如何用圆点分割线,但保留部分用``未触及

Java 如何用圆点分割线,但保留部分用``未触及,java,regex,Java,Regex,我正在寻找一种很好的方法,将线分割成点,但不要触摸带有严重口音的部分(“`”)。我不确定是否有正则表达式可以做到这一点,因此也欢迎使用其他方法 换句话说,我想将其转换为: "a.`b.html`.c.`d.html`" 为此: ["a", "b.html", "c", "d.html"] 我将按`字符分割,然后删除前导点和尾随点。为此,我使用了: 输出: [a,b.html,c,d.html] 按“”`拆分,然后检查字符串的外观是否为string.string或string.或.string

我正在寻找一种很好的方法,将线分割成点,但不要触摸带有严重口音的部分(“`”)。我不确定是否有正则表达式可以做到这一点,因此也欢迎使用其他方法

换句话说,我想将其转换为:

"a.`b.html`.c.`d.html`"
为此:

["a", "b.html", "c", "d.html"]

我将按`字符分割,然后删除前导点和尾随点。为此,我使用了:

输出:

[a,b.html,c,d.html]


”`拆分,然后检查字符串的外观是否为
string.string
string.
.string.
。在第一个例子中,不要删除点,但在其他情况下,请这样做。到目前为止,您是否尝试过任何方法?如果无法避免,请使用:@tnw您的评论给讨论带来了什么?是的,我总是在问之前找到一个解决方案…所以展示一下你的尝试。当字符串不包含任何```时,它不起作用。我在问题中没有提到它,但该字符串也可以是
“a.b.c.d”
,也应该正确拆分。无论如何,谢谢你。
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));