正则如何去截取数字1-200为开头 且S作为结尾的字符串?

如一个字符串为 "字符串R40S 字符串"或者"字符串S120S 字符串"

用正则怎么截取到如上字符串的 40S和120S呢

阅读 2.3k
4 个回答

你没有说清楚,估计是:

RE=/(?<=(R|S))(\d+S)/g

如果不区分大小写,还可以加上标记i。
不过这里其实也能识别201S之类的,如果要精确识别1S-200S还需要:

RE=/(?<=(R|S))(([1-9]|[1-9]\d|1\d\d|200)S)/g

如果没有前导符,则

RE=/(?<=[^\d])(([1-9]|[1-9]\d|1\d\d|200)S)/g

需要考虑 0 开头么?

/([1-9]|[1-9]\d|[12]\d{2})S/g

  let reg = /\d+S/g
  'R40SS120S'.match(reg)

数字范围1-200,包含1和200
'字符串S120S 字符串R23Sd'.match(/(?<=\D|^)([1-9]|[1-9]\d|1\d{2}|200)S/g)

推荐问题