私の質問は、PythonのthisというScala(Java)のバリエーションです。Java文字列トークン化:パターン上で分割してパターンを保持
特に、私には文字列val myStr = "Shall we meet at, let's say, 8:45 AM?"
があります。私はそれをトークン化したいと思いますと区切り文字(空白を除くすべて)を保持します。私のデリミタが文字だけだった場合、例えば。 .
、:
、?
など、私が行うことができます:
[Shall, we, meet, at, ,, let's, say, ,, 8, :, 45, AM, ?]
を生み出す
val strArr = myStr.split("((\\s+)|(?=[,.;:?])|(?<=\\b[,.;:?]))")
しかし、私は拍子\\d+:\\d+
区切りをしたい、と今でもしたいと思いますそれを保持する。分割された文の表現で論理和(?=(\\d+:\\d+))
を追加
- 支援していない拍子の
- 外、
:
は次のとおりです。だから、何私がしたいことは[Shall, we, meet, at, ,, let's, say, ,, 8:45, AM, ?]
注意です区切り文字自体は
どうすればいいですか?
あなたは私のアプローチをチェックする機会を得たことがありますか? –
はい、これまで述べてきたアプローチの両方をチェックしてきました。私はもっと一般的な例について試しています。 –
私のアプローチは、1)時間部分文字列全体、または2)区切り文字の任意の塊、または3)区切り文字ではないもの、および時間文字列と一致することに注意してください。私はそれがあなたが必要な方法で文字列をトークン化するのに十分な包括的だと信じています。 –