如何编写基于末尾锚点的条件正则表达式以实现指定匹配需求?
实现指定规则的条件正则表达式
需求说明
匹配斜杠(/)后的数字字符串,提取规则如下:
- 若斜杠后为4-5位数字结尾,提取最后两位
- 若斜杠后为6位数字结尾,提取最后三位
填充后的完整正则表达式
(?<=\/)(?(?=[0-9]{4,5}$)\d{2}$|\d{3}$)
正则各部分解释
(?<=\/):正向后发断言,确保匹配位置的前一个字符是斜杠/,避免匹配字符串中间的斜杠(?(?=[0-9]{4,5}$)\d{2}$|\d{3}$):条件判断结构,核心逻辑拆分:- 条件分支:
(?=[0-9]{4,5}$):正向预查,判断当前位置后是否是4-5位数字且直到字符串结尾 - 满足条件时(4-5位数字结尾):
\d{2}$匹配并提取最后两位数字 - 不满足条件时(对应6位数字结尾场景):
\d{3}$匹配并提取最后三位数字
- 条件分支:
测试验证
- 输入
/12345→ 匹配结果:45 - 输入
/123456→ 匹配结果:456
内容的提问来源于stack exchange,提问作者Jinyong Kim
相关产品推荐
相关产品推荐

