我有一个正则表达式如下:
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
3- 8-15 18-20星期五地铁
但不是这样的:"8-10 14-20 tues+fri+sat-fr“或”8-10 14-20 tues+fri“
有人能帮我吗?谢谢
发布于 2017-11-21 08:37:18
使用这个regex:https://regex101.com/r/yiDfKz/6/
([0-9]+\-[0-9]+)\s*\,?\s*([0-9]+\-[0-9]+)\s*(mon|tues|wed|thu|fri|sat|sun)([^+]|$)
([^+]|$)
==> ( +
字符或端点除外)(需要多行标志)
或者这个正则表达式:https://regex101.com/r/yiDfKz/4/
([0-9]+\-[0-9]+)\s*\,?\s*([0-9]+\-[0-9]+)\s*(mon|tues|wed|thu|fri|sat|sun)([, ]|$)
([, ]|$)
==>逗号、斜杠或尾行(需要多行标志)
或者最后这个更紧凑的正则表达式:https://regex101.com/r/yiDfKz/7
(\d+-\d+)\s*,?\s*(\d+-\d+)\s*(mon|tues|wed|thu|fri|sat|sun)(?!\+)
使用负前瞻性(?!\+)
和使用[0-9]
代替\d‘
https://stackoverflow.com/questions/47408524
复制相似问题