我正在寻找一个正则表达式来匹配一个字母数字字符串。如果字符串长度为 32 个字符,则匹配字符 17 到 28。如果字符串长度为 34 个字符,则匹配最后 12 个字符。
正则表达式匹配条件 http://s12.postimage.org/ghathiz2l/Screen_shot_2012_08_09_at_11_52_22_PM.png
我有两个单独的表达式来获取两个不同条件的匹配项。
.(?<match>[0-9]{16}) and .(?<match>[0-9]{12})
在代码中,我从右到左读取表达式,处理“if”并在原始字符串为 32 个字符时截断匹配的最后 4 个字符,但希望能够从单个 RegEx 中执行此操作。
编辑
在这种情况下,我确实更愿意取消 RegEx,但我不是该应用程序的原作者。字符串解析条件可能会随着时间而改变,因此在配置文件中维护 RegEx 比在这种情况下发布新版本更简单。另外,这也是老板想要的……