我一直在處理正則表達式,並滿足以下要求。Groovy中的正則表達式不返回預期的結果
// Must be exactly 17 characters
// Must only contain letters and numbers
// Cannot contain the letters ‘I’, ‘O’ or ‘Q’
// Must contain at least 1 alpha and 1 numeric character.
由於一些幫助在另一個話題,我設法得到
/^(?=.*[0-9])(?=.*[a-zA-Z])([a-hj-npr-z0-9]{17})$/
我能夠證實這是每https://regex101.com/r/cVz4b9/4/正則表達式。
由於某些原因,當我在Groovy中嘗試這個時,雖然我沒有得到相同的結果。
def regex = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-hj-npr-z0-9]{17})$/
println ('B1cCdDeEfFgGhHwww' ==~ regex)
例如下面的Groovy腳本在我期待爲true時打印出假。也許我不是逃避我應該的東西?我使用斜槓字符串,所以我不知道爲什麼這不起作用?
如果有人可以挑出哪些問題會對我有所幫助。
感謝
我想你忘了提及區分大小寫。否則使用'[a-hA-Hj-nJ-NpPr-zR-Z0-9]'。 – Rahul
爲什麼不把它作爲4個單獨的步驟,而不是一個可怕的步驟,當你回來更新它時,如果有人有另一個瘋狂的規則添加 –
,你會恨自己的。我開始認爲我自己 – Richie