我有一個像'/whatever/whatver/whatever/v{int}'
作爲字符串顯示字符串,字符串組成部分前綴'/whaterver'
的,串有前綴或沒有,要麼是確定的,最後的部分是/v{int}
我寫了一個普通表達式(^[/][a-zA-Z]+)*/v[0-9]+
,(^[/][a-zA-Z]+)*
表示前綴可以出現與否,/v[0-9]+
表示與最後一部分匹配。想在正則表達式幫助
我想表達能夠完全匹配的字符串,但事實並非如此。
任何人都可以幫助我嗎?
我有一個像'/whatever/whatver/whatever/v{int}'
作爲字符串顯示字符串,字符串組成部分前綴'/whaterver'
的,串有前綴或沒有,要麼是確定的,最後的部分是/v{int}
我寫了一個普通表達式(^[/][a-zA-Z]+)*/v[0-9]+
,(^[/][a-zA-Z]+)*
表示前綴可以出現與否,/v[0-9]+
表示與最後一部分匹配。想在正則表達式幫助
我想表達能夠完全匹配的字符串,但事實並非如此。
任何人都可以幫助我嗎?
首先,爲什麼/
字符的否定?其次,我可以看到你可以有多個前綴,所以你還必須檢查前綴的多基數(請參閱我添加的*
通配符)。
這個表達式匹配([/][a-zA-Z]+)*/v[0-9]+
你的輸入,也沒有前綴匹配的輸入。
編輯
如果你想保持開始的行標記(即使它,如果你想精確匹配是多餘的),你需要排除它形成重複塊(標有*
通配符),因爲您不希望引擎在每個前綴中查找新的行開頭。
^([/][a-zA-Z]+)*/v[0-9]+
^不在[]內,因此它不是否定,而是「在行首」。 –
@Andrei Nicusan我想要完全匹配,因爲我不想在開始時看到很多斜線,就像'///whatever/whatever/.../v{int}'。我在http://regexpal.com/中粘貼正則表達式,它可以匹配上面的字符串。解決了我的問題。謝謝 – user3231931
它也是我通常使用的regexpal。 –
echo "/whatever/whatver/whatever/v1654" | grep -E '^/?([a-zA-Z]+/)+v[0-9]+$'
/whatever/whatver/whatever/v1654
(^ [/] [A-ZA-Z] +)/ V [0-9] +您正在使用的編程語言不匹配多個斜線 – Simson
?你能舉一個具體的例子嗎? –
@Jack這不是關於編程語言,而是關於正則表達式的標準。 –