我試圖獲得一個蛞蝓的模式匹配,這些將是字母數字序列的連字符分隔。
它們可以是:
- 數字開始或結束。
- 數字開始或結束,但不僅僅是數字 。
- 也可以只有字母 。
- 也可以只有一個字 。
我得到了/[a-z0-9] (?:-[a-z0-9] )*$/,這幾乎是有效的,但它會匹配。 3或10
例如:
- 2020-best-year-of-world應該匹配 。
- best-of-world應該匹配 。
- best-of-2021應該匹配 。
- 2021不應該匹配 。
我在這里留下一個regex101鏈接與我的測驗
。uj5u.com熱心網友回復:
除了添加一個錨點^來斷言轉向的開始,你可以添加一個負數的lookahead,以便不僅匹配數字,否則你的模式也將只匹配2020。
^(? [d] $)[a-z0-9] (? : -[a-z0-9] )*$
在部分地區,該模式匹配:
^字串的開始(?![d] $)負向查找,不僅斷定連字符和數字的右邊[a-z0-9]匹配1個以上出現的a-z或0-9 。
(?:-[a-z0-9] )*可選擇重復前面的模式,前面是-。
$字串的結束
uj5u.com熱心網友回復:
這樣吧:
/[a-z0-9] (-*[a-z]/span>) (?:-[a-z0-9] )*$
- 它以一個字符或一個數字開頭 。
- 它需要包含char或
-在中間(我從你的regex中添加的部分,以便只過濾數字) - 以char、digit結尾 。
我不確定,例如2020-2021是否應該匹配。
我已經測驗了在你建議的同一工具中
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332384.html
標籤:
上一篇:攔截器創建兩個單機服務的實體
