2016-06-29 19 views
-1

私は例文を持っています。String:abcd $cvzasd$ waedqwe$qewrerw$dsaxcz $dasdasd$ $fowjew$ dsadsa。 $記号は私のデリミタです。そして私はこの文字列を分割したいが、区切り文字$を削除しないことが望ましい。私は次の8要素を含む結果リストにしたい:分割文字列で区切り文字を削除しない

abcd, $cvzasd$, waedqwe, $qewrerw$, waedqwe, dsaxcz, $dasdasd$, $fowjew$, dsadsa 

私はその結果を得ることができません?それは可能ですが、そのための正規表現を作成する?私は良い例を見つけました:Java: Split String with Regex without deleting delimitersしかし、この例ではデリミタ<と>を使い、異なる区切り文字でしか使えないので、これは私を満足させません。

それ以外の場合は、自分の記号に追加の記号を追加して、その記号を置き換えて解決策を見つけました。例は、$ by - $を置き換え、 - で区切ります。しかし私は私にとっては良い解決策ではないと思います。 luk2302同様

+4

が区切り文字です。なぜcvzasdは両側に$を持っていましたか? – luk2302

+0

「$」で分割する方法も混乱します。いくつかのケースでは、あなたは後に分割されます。また、空の要素を生成する2つの '$'が連続しています。 – micker

+1

実際には '\\ s +'で分割する必要があるようです。http://ideone.com/qltEjqを参照してください。あなたは期待された出力を確信していますか? –

答えて

-1

は、別のリスト内の項目を区切る区切り文字として空白文字を使用することができ、こう述べています。

public class SplitEx { 
    public static void main(String[] args) { 
     String s = "abcd $cvzasd$ waedqwe $dasdasd$ $fowjew$ dsadsa"; 
     String[] parts = s.split("\\s+"); // note: returns an array 
     System.out.println(Arrays.toString(parts)); 
    } 
} 

プリント:

[abcd, $cvzasd$, waedqwe, $dasdasd$, $fowjew$, dsadsa] 
+0

これは "waedqwe $ qewrerw $ dsaxcz"を含むOPの元の文字列では動作しないだろう。しかし、OPはこれを "waedqwe、$ qewrerw $、dsaxcz"に解決したいと思っています。 – FredK

+0

元の文字列に空白がなく、混乱が鉱山だけではないかどうかはまだ分かりません。 –

1

あなたは制約幅の後読みを活用することができますJava正規表現エンジンでサポートされています(値の制限がある場合の値を調整するために、Javaのlookbehindsで限定数量限定が許可されています)。 はregex demo

Java demo参照してください:

以上の空白のように見えます
String pat = "\\s+|(?=(?<!\\$\\w{0,100})(?<!\\s)\\$)|(?<=\\$(?!\\w{0,100}\\$))"; 
String s = "abcd $cvzasd$ waedqwe$qewrerw$dsaxcz $dasdasd$ $fowjew$ dsadsa"; 
String[] res = s.split(pat); 
System.out.println(Arrays.toString(res)); 
// => [abcd, $cvzasd$, waedqwe, $qewrerw$, dsaxcz, $dasdasd$, $fowjew$, dsadsa] 
+0

あなたの出力例は、$ $をケースの半分でグループ化しません: 'abcd $ cvzasd $ waedqwe $ qewrerw $ dsaxcz $ dasdasd $ $ fowjew $ dsadsa' – TemporalWolf

+0

結果:[abcd、$ cvzasd $、waedqwe、$ qewrerw、 $ dsaxcz、$ dasdasd $、$ fowjew $、dsadsa] – Grayson

+0

結果は期待通りです。 @Grayson –

関連する問題