为了账号安全,请及时绑定邮箱和手机立即绑定

REGEX - NP++ - 使用一个正则表达式从代码的子组中删除填充 0

REGEX - NP++ - 使用一个正则表达式从代码的子组中删除填充 0

白衣非少年 2021-10-19 17:07:49
这是我的第一个主题问题,提前感谢您的帮助和您阅读我的时间我在 NP++ 下工作以尝试一些 Regex我想要的是我想使用比下面的我更有吸引力和更智能的正则表达式将这些行(从)转换为那些格式化的行(到)(请参阅不吸引人的解决方案)(从) => (到)H04B0001240000; => H04B 1/24;  H04B0010300000; => H04B 10/30;  H04B0011301000; => H04B 11/301;  H04B0111300000; => H04B 111/30;  H04B0101303400; => H04B 101/3034;  H04B0100300010; => H04B 100/30001;  H04B0110300000; => H04B 110/30;  如何进行 ?-对于给定的代码,规则是H04B0001240000;-Cut 成三部分 4、4 和 6H04B 0001/240000;- 在第二组开始处提取所有填充 0(第二组应至少有一个数字) -H04B 1/240000;在最后提取所有填充 0第三组的(第三组至少要有两位数)H04B 1/24;因此,被视为无用的 0 位于第二组的开头和第三组的结尾。填充 0 的数量是变化的...没有吸引力的解决方案在 NP++ 下,我找到了一个在“搜索”字段中没有吸引力的解决方案:([A-Z])((?:0{3}([1-9]))|(?:0{2}([1-9][0-9]))|(?:0([1-9][0-9]{2})))([0-9]{2})([0-9]*[1-9])?0{1,4}(;)在“替换”字段中:\1 \3\4\5\/\6\7\8与说明H04B 0001/240000;==============================([A-Z])是指由一个大写字母到Z,配衬第一组的最后一个字母(H04B)((?:0{3}([1-9]))|(?:0{2}([1-9][0-9]))|(?:0([1-9][0-9]{2})))应该匹配 0002 或 0020 或 0201 但不匹配 2011。它涉及检测第二组 ( 0001)([0-9]{2})([0-9]*[1-9])?0{1,4}(;)涉及第三组 6 位数字 ( 240000),目的是丢弃末尾的所有填充 0。第三组至少要有两位数([0-9] {2})最后的问题你知道一个更有吸引力和更聪明的正则表达式来达到预期的结果吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 250 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号