2016-11-06 14 views
0

私は文字列を区切りたいが区切り文字はスペース以外のものにしたい。文字列を区切り、正規表現でJavaを

また、asda45aasd6adのような単語を区切りません。

これが区切りのリストです:

private static String delimits="[{;}(),#<>*+-=/ ]+"; 

私はあなたが(あなたが結果にスペース区切り文字を保持しないので)スペースを除外するために、あなたのdelimitsパターンを調整する必要がString[] List = o.split("(?<="+delimits+")|(?="+delimits+")");

+0

これを使用する完全な文字列のサンプルを提供できますか? –

+0

また、asda45aやasd6adのような言葉はどういう意味ですか? –

+0

数字のある単語、 私は字句解析ツールを作ろうとします。 –

答えて

1

を試してみました文字クラスの末尾に-を入れて、式の中で+=の間の範囲を形成します。すると、ちょうどメインの正規表現に| +代替を追加します。

String delimits="[{;}(),#<>*+=/-]+"; 
String o = "asda45a or-ro asd6ad"; 
String[] lst = o.split("(?<="+delimits+")|(?="+delimits+")| +"); 
System.out.println(Arrays.toString(lst)); 
// => [asda45a, or, -, ro, asd6ad] 

はあなたがどんな空白で分割したい場合は、|\\s+| +を置き換えるonline Java demo

を参照してください。

+1

ありがとう、それは動作します! –

関連する問題