申し訳ありませんが、これはnoobの質問ですが、私は正規表現と非常に快適ではないんだと(今のところ)ならば、これは少し私の理解を超えています。複数の日付形式を一致させる正規表現ですか?
私のジレンマは、私たちがアンドロイドのアプリケーションにスキャンを取得し、私はいくつかの日付を解析しようとしているIDバッジの真実を持っているということです。
例えば、いくつかの日付がそうのように表されます。
Pattern p = Pattern.compile("ISS(\\d{8})");
Matcher m = p.matcher(scanData);
最初の2つの例のためにうまく働いたが、最近、私は、我々を実現しています
"ISS20141231" format = yyyyMMdd desired output = "20141231"
"ISS12312014" format = MMddyyyy desired output = "12312014"
"ISS12-31-2014" format = MM-dd-yyyy desired output = "12312014"
は、現在、私は正規表現のパターンを持っていますセパレータとしてダッシュ(またはスラッシュ)を使用する日付を持つこともあります。
これらの日付を抽出する効率的な方法は、複数のパターンを書き込む必要がなく、それぞれのパターンをループして一致するかどうかを確認することですか? ISS([\ d {8}(\ d {2} \ w \ d {2} \ w \ d {4})(\ d {4} \ w \ d {2} } \ \ dの{2})])」
おかげW!
[EDIT] ただ、物事はもう少し明確にします。部分文字列( "ISSMMddyyyy")は、はるかに大きな文字列に由来し、その中のどこにでも置くことができます。だから、regexは元の(200バイト以上の)文字列を検索しなければなりません。
[この質問](http://stackoverflow.com/q/277547/5743988)によると、正規表現を使って文字列からハイフンを削除するだけではありません。 @anabhavaがreplaceステートメントで行ったように、これを行う必要があります。 – 4castle