這個有點(diǎn)難度的,/[aeiou]{1,4}/ 這樣寫有點(diǎn)問題的
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
grep?-P?'^(?=.*[aeiou])[a-zA-Z]{4}$'
(?=.*[aeiou]) ?表示存在一個位置,什么位置呢?這個位置之后必會出現(xiàn)aeiou其中之一。由于這個位置在^之后,簡單理解為:開頭插入了一個預(yù)言,這個預(yù)言是:^之后必會至少出現(xiàn)aeiou其中之一。
[a-zA-Z]{4} 沒什么好說的
于是整個 '^(?=.*[aeiou])[a-zA-Z]{4}$' 翻譯過來就是:
一開頭(^)我預(yù)言之后必會至少出現(xiàn)aeiou其中之一,4個字母后結(jié)束($)
/^(?=.{4}$)([a-z]*[aeiou]{1,4}[a-z]*)$/
: )
補(bǔ)充,這個版本原理是一樣的,更簡潔一些:
/^(?=[a-z]{4}$)(.*[aeiou]{1,4}.*)$/
下面這個是MariaDB,可惜在MySQL上面行不通
在MySQL里面拆成兩個執(zhí)行: