sql >> Databáze >  >> RDS >> Mysql

Jak spárujete sudá čísla písmen nebo lichá čísla písmen pomocí regexp pro mysql

Sudý počet A lze vyjádřit jako (AA)+ (jedna nebo více instancí AA; takže bude odpovídat AA, AAAA, AAAAAA...). Lichý počet G lze vyjádřit jako G(GG)* (jeden G následuje nula nebo více výskytů GG , takže to bude odpovídat G, GGG, GGGGG...).

Dejte to dohromady a máte:

/(AA)+G(GG)*TC/

Protože se však motory regulárních výrazů budou snažit co nejvíce shodovat, bude tento výraz ve skutečnosti odpovídat podřetězci AAAGGGTC (tj. AAGGGTC )! Abyste tomu zabránili, můžete použít negativní vzhled abyste zajistili, že znak před prvním A není další A :

/(?<!A)(AA)+G(GG)*TC/

...kromě toho, že MySQL nepodporuje vyhledávání v jejich regulárních výrazech.

Místo toho můžete určit, že vzor začíná na začátku řetězce (ukotven od ^ ), nebo mu předchází znak, který není A:

/(^|[^A])(AA)+G(GG)*TC/

Všimněte si však, že s tímto vzorem bude zachycen další znak, pokud vzor nebude nalezen na začátku řetězce, takže pokud to není A, budete muset první znak sejmout.



  1. Jak vložit NULL do mysql, zejména INT dataType

  2. connection.select_value vrací řetězce pouze v postgresu s pg gem

  3. Připojení k SQL Server 2012 pomocí sqlalchemy a pyodbc

  4. Jak skrýt heslo Mysql v docker-compose pomocí env_file