我一直在处理正则表达式,并满足以下要求。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