我正在阅读包含年份和分页页面的网址字符串。它们分为两种:
/news/2016/2
和/news/2/2016
较小的数字是分页编号,它不应该大于3位数。 4位数字是年份。
我能够匹配年份:/\d{4}/
和分页3位数限制,但是我无法强制启动正斜杠。我试过这两个解决方案:
[1-9]?\d(?=\/|$)
- 它将匹配1到3位数字,但它会忽略起始斜杠,因此年份也会匹配。
(?=\/)[1-9]?\d(?=\/|$)
- 文档解释它的方式,但它不匹配任何东西......
P.S。这适用于javascript。
答案 0 :(得分:2)
您可以将正则表达式与捕获组和单词边界一起使用:
\/(\d{1,3})\b
请参阅regex demo
它会在/
后捕获1到3位数字。单词边界不会让匹配在4 + - 数字内。
var re = /\/(\d{1,3})\b/;
var str = '/news/2016/2';
var res = str.match(re);
if (res) {
document.getElementById("r").innerHTML = res[1];
}
<div id="r"/>