拆分字符串并在数组中获取分隔符

时间:2018-05-08 07:10:41

标签: regex groovy

我想分割一个这样的字符串:

"Street:§§§§__inboundRow['Adress']['Street']__§§§§ und Postal: §§§§__inboundRow['Adress']['Postal']__§§§§ super"

我在Groovy中的代码:

def parts = ret.split(/§§§§__inboundRow.+?__§§§§/)

所以我得到的数组是

["Street:", " und Postal: ", " super"]

但我想要的是:

["Street:", "§§§§__inboundRow['Adress']['Street']__§§§§", " und Postal: ", "§§§§__inboundRow['Adress']['Postal']__§§§§", " super"]

我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

尝试分析积极的前瞻性。由于您希望保留用于拆分的分隔符,因此可能需要采用一种方法。

var str = "String1:§§§§__inboundRow[Test]__§§§§andString2:§§§§__inboundRow[Test1]__§§§§";
console.log(str.split(/(?=§§§§__inboundRow\[Test\d*\]__§§§§|and)/));

我不知道你使用的语言是什么,但是这应该适用于你可以使用正则表达式进行拆分的任何地方,使用lookahead(JavaScript当然支持它)。用于拆分的模式是:

(?=§§§§__inboundRow\[Test\d*\]__§§§§|and)

当我们断言下面的内容是文本§§§§__inboundRow[Test\d*]__§§§§and时,这就是分裂。