2016-04-03 55 views
1

我有一個文本看起來像這樣:分割正則表達式;保持分隔符

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] 

所以最新最好的方式來解決它?

+0

喲!我已經嘗試過,但它不會工作看上面的問題 – ForJ9

回答

2

可以使用的lookaround assertions的組合:

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

此分割一個字符串,如果前面的字符是一個]或如果下面的字符是[!img

+0

但是這將刪除分隔符... – ForJ9

+0

是的我使用split()來分割它:)。我應該使用模式嗎? – ForJ9