如何使用正则表达式在特定字符之后获取1个或2个字符?

时间:2019-06-02 09:05:24

标签: regex

如何使用正则表达式在特定字符-之后获取1或2个字符?

例如:

33225566-69   => 69
33225544-5    => 5

但是我不希望超过3个字符:

33226655-678  =>  Do not select

某些浏览器不支持向后看。 我想要不带反光的regex命令。

1 个答案:

答案 0 :(得分:3)

只需匹配-,然后捕获2位数字,对另一位数字进行负向超前查找,然后提取所捕获的组(如果存在)。例如,在Javascript中:

['33225566-69', '33225544-5', '33226655-678'].forEach((str) => {
  const match = str.match(/-(\d{1,2})(?!\d)/);
  console.log(
    match
    ? match[1]
    : 'No Match'
  );
});

如果带有-和数字的部分始终位于字符串的末尾,则使用$代替前瞻:

-(\d{1,2})$