我有一個長字串aaaaa123 ** bbbbb444 ** ccccc66 ** ddDddD77 ** eeeee667,想使用正則運算式獲取子字串。
到目前為止我得到了什么:
/[A-Z,a-z,0-9,_-]{7,14}/
這應該回傳由 7 到 14 個字符組成的任意組,包括大寫、小寫、數字 - 和 _
到目前為止,一切都很好。
但是,我現在希望它更加嚴格,以便至少有一個大寫字符是強制性的。即在我的例子中只ddDddD77應該匹配。我怎么做?
uj5u.com熱心網友回復:
如果支持前瞻并且\w單詞不以您開頭或結尾,-則可以斷言長度并至少匹配一個大寫:
\b(?=[\w-]{7,14}\b)[a-z0-9_-]*[A-Z][\w-]*
正則運算式演示
另外的選擇:
(?<!\S)(?=[\w-]{7,14}(?!\S))[a-z0-9_-]*[A-Z][\w-]*
正則運算式演示
如果不支持后視,您還可以選擇捕獲組:
(?:\s|^)(?=[\w-]{7,14}(?:\s|$))([a-z0-9_-]*[A-Z][\w-]*)
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/520764.html
