Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да съпоставите четни числа на букви или нечетни букви, като използвате regexp за mysql

Четен брой A може да бъде изразен като (AA)+ (един или повече екземпляри на AA; така че ще съвпада с АА, АААА, АААААА...). Нечетен брой Gs може да бъде изразен като G(GG)* (един G последвано от нула или повече екземпляри на GG , така че ще съвпада с G, GGG, GGGGG...).

Съберете това и ще получите:

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

Въпреки това, тъй като механизмите за регулярни изрази ще се опитат да съвпадат колкото е възможно повече, този израз всъщност ще съответства на подниз от AAAGGGTC (т.е. AAGGGTC )! За да предотвратите това, можете да използвате отрицателен поглед назад за да се гарантира, че знакът преди първия A не е друг A :

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

... с изключение на това, че MySQL не поддържа огледи в техните регулярни изрази.

Това, което можете да направите вместо това, е да посочите, че шаблонът започва или от началото на низа (закотвен от ^ ), или е предшестван от знак, който не е A:

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

Но имайте предвид, че с този шаблон ще бъде заловен допълнителен знак, ако шаблонът не е намерен в началото на низа, така че ще трябва да отрежете първия знак, ако не е A.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP фатална грешка:Извикване на недефинирана функция mysqli_stmt_get_result()

  2. Инструментът за създаване на заявки за доктрини DATE_FORMAT не работи

  3. Каква е разликата между MySQLdb, mysqlclient и MySQL конектор/Python?

  4. Инсталирайте множество MySQL екземпляри на Linux сървър - използвайте отделен конфигурационен файл на MySQL

  5. Съхраняване на идентификационни данни на MS SQL Server в база данни на MySQL