是否可以使用不同的分隔符拆分文本,同时在返回的数组中保留分隔符。
在示例中,如果我有一个包含以下内容的文本:
sin({$=i$}^2
我想把它拆分成一个如下所示的数组:
['sin(' , '{$=i$}', '^2']
而我的分隔符为{
和}
。我设法实现的是一个如下所示的数组:['sin(' , '{$=i$', '}^2']
但是我不能用这段代码在正确的位置制作最后一个分隔符}
:
String text = "sin({$=i$}^2";
String[] splitted = text.split("(?=[{}])");
答案 0 :(得分:1)
根据您的示例,您可能正在寻找
split("(?<=\\})|(?=\\{)")
我们正在使用look-around机制
(?<=\\})
在前面有}
的地方拆分(这意味着在}
之后拆分)(?=\\{)
在其后面有{
的地方拆分(这意味着在{
之前拆分)但说实话,split
甚至regex
可能不是您正在寻找的工具。试着考虑构建自己的解析器/状态机。