ソリューションで特定のタイプの数値オブジェクトを「きれいに」しようとしています。この特定のタイプには、次の可能な表現と、それらのきれいな表現があります。
xxxxxyyyyyyy => xxxxx-yyyyyyy
xxxxxyyyyyyyz => xxxxx-yyyyyyy-z
基本的に、タイプは を表す 5 桁FieldA
、 を表す 7 桁FieldB
、および a を表すオプションの桁で構成されCheckDigit
ます。次の正規表現/置換パターンを使用します。
Regex: ^(?<FIELDA>\d{5})(?<FIELDB>\d{7})(?<CHECKDIGIT>\d?)$
Replacement: ${FIELDA}-${FIELDB}-${CHECKDIGIT}
... 結果:
xxxxxyyyyyyy => xxxxx-yyyyyyy- (wrong)
xxxxxyyyyyyyz => xxxxx-yyyyyyy-z (correct)
正規表現/置換ペアだけを使用して最初の表現を修正することは可能ですか? 2 つの異なる正規表現を使用してこの作業を行うことができますが、それよりも洗練されたソリューションが必要です。単一の正規表現/置換ペアを使用するもの。
PS。Java 1.7 を使用しています。