尋找一個不匹配超過 1 個尾隨斜杠的正則運算式
api/v1
/api/v1
/api/2v1/21/
/api/blah/v1/
/api/ether/v1//
/api/23v1///
預期匹配
/api/v1
/api/2v1/21/
/api/blah/v1/
我嘗試了什么:
^\/([^?&#\s]*)(^[\/{2,}\s])$
uj5u.com熱心網友回復:
在您嘗試的模式中,模式的第二部分無法匹配,它斷言字串的開頭,^然后直接匹配字符類中的單個(^[\/{2,}\s])$字符,然后斷言字串的結尾。
^\/([^?&#\s]*)(^[\/{2,}\s])$
^^^^^^^^^^^^^^
但是您已經在這里斷言了字串的開頭^\/
您可以重復一個模式,/然后重復您已經擁有的字符類的 1 倍:
^(?:\/[^\/?&#\s] ) \/?$
解釋
^字串的開始(?:\/[^\/?&#\s] )重復 1 次/和 1 字符而不是列出的字符\/?可選的/$字串結束
查看正則運算式演示
uj5u.com熱心網友回復:
通過使用負前瞻:
^(?!.*//)/.*
在 regex101 看到這個演示
uj5u.com熱心網友回復:
您可以使用
^(?:/[^/?&#\s] )*/?$
請參閱正則運算式演示。
細節
^- 字串的開始(?:/[^/?&#\s] )*- 零個或多個重復/字符后跟一個或多個除/,?,&和#空格之外的字符/?- 一個可選的/$- 字串結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481389.html
標籤:正则表达式 正则表达式环顾四周 正则表达式组 正则否定
上一篇:無論標點如何,如何只選擇目標字串之后的下一個字串但目標字串之后的下一個字串?
下一篇:正則運算式-終止字符出現在字串中
