単語の例:a、akkka、akokaa、kokoko、kakao、oooaooa、kkako、kakaoa
正規表現の魔女が「a」が2以下の単語を与えるが、「a」のない単語は与えない
結果:a、akka、kakao、oooaooa、kkako
はい、実際に使用しています:
SELECT Word FROM dictionary_gr WHERE Word REGEXP 'λ{2,3}' LIMIT 0 , 30
これは0行を返し、2つのλと3つのλを持つ単語があります。
select *
from table
where LENGTH(name) - LENGTH(REPLACE(name, 'a', '')) between 1 and 2
間で使用するように更新されました。
MySQLがルックアラウンドアサーションに関して何をサポートしているかはわかりませんが、次の方法でうまくいきます。
^(?=.*a.*a?.*)(?!.*a.*a.*a.*).*$
文字列の1つまたは2つのa
文字に一致する先読みアサーションがあります。次に、文字列内の3つ以上のa
sを無視する否定先読みがあります。次に、最初の2つのアサーションが満たされていれば、最終パターンは文字列全体と一致します。
MySQLがルックアラウンドをサポートしていない場合、@ Woot4Mooの答えが適切です。