さまざまな文字を区切り文字として使用して文字列を分割し、それらの区切り文字を独自の配列インデックスに保持しようとしています。たとえば、文字列を分割したいとします。
if (x>1) return x * fact(x-1);
「(」、「>」、「)」、「*」、「-」、「;」を使用 '\s' を区切り文字として使用します。出力を次の文字列配列にしたい: {"if", "(", "x", ">", "1", ")", "return", "x", "*", "fact "、"("、"x"、"-"、"1"、")"、";"}
私がこれまでに使用している正規表現は
split("(?=(\\w+(?=[\\s\\+\\-\\*/<(<=)>(>=)(==)(!=)=;,\\.\"\\(\\)\\[\\]\\{\\}])))")
区切り文字のいずれかが続くかどうかに関係なく、各単語文字で分割されます。例えば
テスト + 1
{"test+", "1"} の代わりに {"t","e","s","t+","1"} を出力します
その文字の後に区切り文字が 1 つも続かない場合でも、各文字で分割されるのはなぜですか? また、Javaでもこれを可能にする正規表現はありますか? ありがとうございました