我工作的一些遺留代碼,發現了一個正則表達式,並希望有人能對它進行解剖我:大廈密碼驗證的正則表達式動態
((?=.*[^a-zA-Z])(?=.*[a-z])(?=.*[A-Z]).{8,})
我知道它在做什麼,但不能完全肯定它是如何做它。什麼是「。」在條件之後做什麼?
我想添加一些代碼來動態生成這個正則表達式。也就是說,如果一組配置表示密碼可以做任何事情,我想返回一個正則表達式,它將在groovy中爲所有.CallSchema()函數返回true。到目前爲止,我剛剛完成了字符串格式設置,所以創建的正則表達式是「(。)」,但是當使用matches()調用時返回false。
感謝您的幫助!
'.'會匹配1個不是換行符的字符。如果你想允許任何數量的這些字符(包括空字符串),那麼你需要'。*',一個或多個'。+',正好是x'。{x}',在x和y之間'。{x ,y}',至少x'。{x,}'或者至多x'。{,x}'。我建議訪問rexegg.com(在下面的答案中鏈接)並瀏覽那裏的信息;聽起來好像你會回到這裏很多,如果你沒有得到正則表達式的基本句柄。 – adamdc78