(.Netアプリケーションで)正規表現replaceを使用して、バーコードからアイテムIDを作成しています。これが私が使用している正規表現です:
^(?<Bestellnr>\w{6})(?<Pos>\d{3})M(?<Menge>\d{5})P(?<Lfd>\d{3})$
置換文字列は次のとおりです(先頭に空白がありますが、ここでは重要ではありません)。
${Bestellnr}${Pos} ${Lfd}
入力例は次のとおりです。
685774010M00555P002
上記の交換の現在の結果は次のとおりです。
685774010 002
しかし今、私の顧客は、グループ「Pos」と「Lfd」から先行ゼロを削除することを望んでいるので、結果は次のように変わるはずです。
685774 10 2
編集: 「lfd」グループの2つのゼロが2つのブランクに置き換えられていることに注意してください!
私は今何時間も試しましたが、これを機能させることができないようです。私が見つけた最善のアプローチは、次のような先行ゼロ用の追加のグループを作成することでした。
^(?<Bestellnr>\w{6})(?<PosNull>0*)(?<Pos>\d{1,})M(?<Menge>\d{5})P(?<LfdNull>0*)(?<Lfd>\d{1,})$
しかし、「ヌルグループ」を正しい数のブランクに置き換える方法がわかりません。これは可能ですか?(今まで、正規表現で不可能なことは何もないと思っていました;-)
誰か助けてもらえますか?