如何仅用正则表达式实现16位ID的URI片段格式转换?
仅用正则表达式实现16位ID的斜杠分隔格式化(Documentum D2环境)
完全可以仅靠正则表达式的替换功能实现,不需要额外编写代码,适配Documentum D2的自动命名配置场景。
具体实现方案:
匹配正则表达式:使用精准匹配两位十六进制字符的规则,避免匹配多余字符:
([0-9A-Fa-f]{2})(注:如果你的ID确实包含大小写字母和数字,用
([A-Za-z0-9]{2})也可以,但十六进制场景下前者更严谨)替换字符串:利用反向引用将每个捕获的两位组后添加斜杠:
$1/关键设置:确保开启全局替换(Documentum D2的正则替换默认支持全局模式,无需额外配置)。
效果验证:
输入ID:0b00271180119cce
经过上述正则替换后,输出结果:0b/00/27/11/80/11/9c/ce/,完全符合需求。
为什么你之前的正则没达到预期?
你用的([A-z0-9]{1,2})会匹配1-2位字符,在16位ID场景下虽然能捕获8组,但替换时需要手动拼接所有组(比如$1/$2/$3/.../$8/),操作繁琐且容易出错。而直接用([0-9A-Fa-f]{2})全局替换成$1/,自动遍历所有两位组并添加分隔符,更简洁可靠。
内容的提问来源于stack exchange,提问作者Arthur Trip
相关产品推荐
相关产品推荐

