我已經試過了很多關於如何在html5模式的正則表達式函數中使用負面lookbehind和lookahead的正則表達式指南。在html5模式中使用負向lookbehead和lookahead
我想匹配以下模式,其中字符串必須以[a-z]
字母開頭和結尾。該字符串最長可以有30個字符。也可以包含符號:-
,但是它不能連續超過一個-
。
的sooo,我想出了到目前爲止是這樣的:
^[a-z][a-z(?<!-(-)?!-)]{0,28}[a-z]$
現在我無法得到先行和回顧後使正常工作,我不太清楚,如果我正確地實現了最多30個字符。不過,我試過從[a-z]
開始和結束,它工作正常。
一些示例字符串:
'a-b' => true
'a-' => false
'-a' => false
'a--b' => false
'ab-cd' => true
'abc' => true
'a-b-c' => true
嘗試'^ [A-Z] +({31}?!)(: - [A-Z] +)* $'。不清楚你是否只想匹配'abc-xyz-def'和'aaaaaa'這樣的字符串,或者'a - ()*^a'也是有效的。請添加一些您允許的字符串示例,一些您不允許。 –
@WiktorStribiżew甜,看起來像它的工作,你能解釋你使用的結構嗎?它和我用過的東西很相似。 – PhyCoMath
@WiktorStribiżew查看更新以獲取允許字符串的一些示例。 – PhyCoMath