我有以下数据文本:
[data]A[/data]
aaa
4 5 8
[data]B[/data]
bbb
3 1 9
[data]C[/data]
ccc
6 5 2
...
我想将它们分成以下 3 个单元:
第一单元:
[data]A[/data]
aaa
4 5 8
第二单元:
[data]B[/data]
bbb
3 1 9
第三单元:
[data]C[/data]
ccc
6 5 2
所以我的代码如下所示:
String Units[]=dataText.split("[data]");
但是,这并不能正确执行,分割它的正确方法是什么?
如果我使用正则表达式,我应该如何编写表达式?
最佳答案
使用正则表达式(?ms)(?<=.)(?=^\[)
:
String[] units = dataText.split("(?ms)(?<=.)(?=^\\[)");
参见regex101.com用于演示。
说明:
(?ms) Turn on MULTILINE ('^' and '$' match after/before line terminator)
and DOTALL (aka "single line", '.' matches any character)
(?<=.) Must be preceded by a character (needs 's' flag)
Used to prevent matching very first '['
(?=^\[) Must be followed by a '[' at the beginning of a line (needs 'm' flag)
关于java - Java中如何分割多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952094/