拆分正则表达式;保持分隔符

时间:2016-04-03 17:05:19

标签: java regex

我的文字看起来像那样:

This is [!img|http://imageURL] text containing [!img|http://imageURL2] some images in it

所以现在我想将这个字符串分成几部分并保留分隔符。 我已经想通了,这可以解决字符串,但它不会保留分隔符:

\[!img\|.*\]

在其他一些帖子中,我看到我需要添加?<=来保留分隔符。 所以我连接了两个,但是我收到了错误消息:Lookbehinds need to be zero-width, thus quantifiers are not allowed 以下是完整的正则表达式抛出此错误:

(?<=\[!img\|.*\])

我期待结果:

[This is; [!img|http://imageURL]; text containing; [!img|http://imageURL2]; some images in it]

那么解决它的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用lookaround assertions

的组合
String[] splitArray = subject.split("(?<=\\])|(?=\\[!img)");

如果前面的字符是]或者以下字符是[!img,则会拆分字符串。