我正在使用正则表达式替换(在 .Net 应用程序中)从条形码创建项目 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”组中的两个零被两个空格替换!
我已经尝试了几个小时,但我似乎无法让它工作。我能找到的最佳方法是为前导零创建额外的组,例如:
^(?<Bestellnr>\w{6})(?<PosNull>0*)(?<Pos>\d{1,})M(?<Menge>\d{5})P(?<LfdNull>0*)(?<Lfd>\d{1,})$
但我不知道如何用正确数量的空白替换“空组”。这可能吗?(直到现在,我认为 Regex 没有什么是不可能的 ;-)
任何人都可以帮忙吗?