次の形式の文字列を取得しました:yyyyMMdd_HHmm_ss_unitCode_(status)。各コンポーネントを専用クラスのプロパティにマップする必要があります。
次のような正規表現でトークンを定義することを考えました:
{d+}4{d+}2{d+}2_{d+}2_{d+}2_{s+}3_{s+}2
=>おおよその正規表現構文についてお詫びします。dは10進数、sは文字列です。
{d+}4
最初のグループはクラスの「年」プロパティに、2番目のグループは「月」に移動する必要があることをパーサーにどのように伝えることができますか。
明らかに、私はこれを行うことができました:token.setYear(substring(0,4))
しかし、ファイル名の構造を制御できないので、もう少し一般的にしたかったのです。また、保存して入力するstartPosition、endPosition、属性名を使用してxml構造を定義することも検討しました。
全体として、私はこれらすべてが非常に複雑すぎると思いました。問題は、を使用できるようにするための単一のセパレーターがないことですString.split
。