2016-04-03 6 views
1

を保ちます。 は、私はすでに文字列を分割し、これが機能することを、考え出したが、それは区切り文字を保持しません。分割正規表現。</p> <pre><code>This is [!img|http://imageURL] text containing [!img|http://imageURL2] some images in it </code></pre> <p>だから今、私は部品で、この文字列を分割し、区切り文字を維持したい:私はテキストはそのように見えてい区切り

\[!img\|.*\] 

そして私は、私は区切りを維持するために?<=を追加する必要があることがわかり、いくつかの他の記事で。

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

私は結果として期待: は、だから私は両方を接続したが、私は、エラーメッセージが表示されます:Lookbehinds need to be zero-width, thus quantifiers are not allowed はここでは、このエラーを投げフル正規表現だ

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

最良の方法は、それを修正するので、いただきました! ?

+0

私はすでにそれを試しましたが、上記の問題を見てもうまくいきません – ForJ9

答えて

2

あなたはlookaround assertionsの組み合わせを使用することができます。直前の文字が]または以下の文字が[!imgている場合であれば

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

これは文字列を分割します。

+0

これはデリミタを削除します... – ForJ9

+0

はい私はsplit()を使って分割します:)。パターンを使うべきですか? – ForJ9

関連する問題