2 回答

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)前模式的開頭([a-zA-Z&]*[0-9]{0,3}[\s]?)\w{8,}
有 0+ 次、0-3 次或可選的量詞。
最后它應(yīng)該匹配至少 8 次以上的單詞字符,而這不會(huì)匹配任何示例。
您可以使用負(fù)前瞻(?!
來斷言沒有出現(xiàn) 4 個(gè)數(shù)字或 2 個(gè)空格,然后重復(fù)匹配字符類中列出的 8 次以上。
^(?!(?:[^\r\n0-9]*[0-9]){4})(?!(?:\S* ){2})[a-zA-Z0-9 &]{8,}$
^
字符串的開頭(?!
負(fù)向前看,斷言右邊的不是(?:[^\r\n0-9]*[0-9]){4}
匹配 4 次一個(gè)數(shù)字)
關(guān)閉前瞻(?!
負(fù)向前看,斷言右邊的不是\S*
匹配 0+ 次非空白字符,然后匹配一個(gè)空格(?:
非捕獲組){2}
關(guān)閉非捕獲組并重復(fù)2次)
負(fù)向前瞻,斷言不是 2 個(gè)空格[a-zA-Z0-9 &]{8,}
匹配任何列出的 8 次以上$
字符串結(jié)尾

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
與正向前瞻有些不同
Pattern.compile("(?=^[^ ]* ?[^ ]*$)(?=^([^0-9]*[0-9]?){1,3}$)^[A-Za-z0-9\\& ]{8,}$")
[a-zA-Z0-9\\& ]{8,}
:允許的字符數(shù)為 8 個(gè)或更多。
(?=^[^ ]* ?[^ ]*$)
:正向前瞻:允許單個(gè)空格
(?=^([^0-9]*[0-9]?){1,3}[^0-9]*$)
:正向前瞻最多允許三個(gè)數(shù)字實(shí)例
https://regex101.com/r/FvaslE/2
添加回答
舉報(bào)