如何匹配一个string的结尾不能加上

我有一个正则expression式,如下所示:

if (string.match(/([0-9]+\-[0-9]+)\s*\,?\s*([0-9]+\-[0-9]+)\s*(mon|tues|wed|thu|fri|sat|sun)/ig)) { string = string.replace(/([0-9]+\-[0-9]+)\s*\,?\s*([0-9]+\-[0-9]+)\s*(mon|tues|wed|thu|fri|sat|sun)/ig, "$3 $1 , $3 $2") } 

抓住以下模式:

1- 8-20 15-19 sat,

2- 8-10 14-18 tue

3- 8-15 18-20星期五地铁

但不是这些情况:“8-10 14-20 tues + fri + sat-fr”或“8-10 14-20 tues + fri”

有人能帮我吗? 谢谢

使用这个正则expression式: https : //regex101.com/r/yiDfKz/6/

 ([0-9]+\-[0-9]+)\s*\,?\s*([0-9]+\-[0-9]+)\s*(mon|tues|wed|thu|fri|sat|sun)([^+]|$) 

([^+]|$) ==>除了字符或者结尾(需要多行标志)

或这个正则expression式: https : //regex101.com/r/yiDfKz/4/

 ([0-9]+\-[0-9]+)\s*\,?\s*([0-9]+\-[0-9]+)\s*(mon|tues|wed|thu|fri|sat|sun)([, ]|$) 

([, ]|$) ==>逗号,斜杠或者结尾(需要多行标志)

或者最后这个更紧凑的正则expression式: https : //regex101.com/r/yiDfKz/7

 (\d+-\d+)\s*,?\s*(\d+-\d+)\s*(mon|tues|wed|thu|fri|sat|sun)(?!\+) 

使用负向预测(?!\+)并使用[0-9]而不是\ d`