簡體   English   中英

如何匹配字符串的結尾而不是加號

[英]How match end of a string not catch plus

我有一個正則表達式如下:

 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坐,

2-8-10 14-18個星期二

3月8日至18月18日星期五

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

有人能幫我嗎? 謝謝

使用此正則表達式: 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`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM