是否可以使用不同的分隔符分割文本,同时将分隔符保留在返回的数组中。
例如,如果我有一个包含以下内容的文本:
sin({$=i$}^2
我想将它分割成一个如下所示的数组:
['sin(' , '{$=i$}', '^2']
而我的分隔符是 {
和 }
。我设法实现的是一个如下所示的数组: ['sin(' , '{$=i$', '}^2']
但我无法使用这段代码将最后一个分隔符 }
放在正确的位置:
String text = "sin({$=i$}^2";
String[] splitted = text.split("(?=[{}])");
最佳答案
根据您的示例,您可能正在寻找
split("(?<=\\})|(?=\\{)")
我们正在使用look-around机制
-
(?<=\\})
在有}
的地方分割在它之前(这意味着在}
之后分割) -
(?=\\{)
在有{
的地方分割在它之后(这意味着在{
之前分割)
但说实话split
甚至regex
可能不是您正在寻找的工具。尝试考虑构建自己的解析器/状态机。
关于java - 如何在 Java 中保留分隔符的同时在不同分隔符之间分割文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524712/