Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL REGEXP i powtarzające się słowa

Zwykle używa się pozytywnych asercji z wyprzedzeniem do tego zadania, ale silnik regex MySQL ich nie obsługuje.

Dlatego jedyną opcją (jeśli chcesz to zrobić w jednym wyrażeniu regularnym) jest obsługa obu odmian (hello po red lub hello przed red ) "ręcznie":

hello.*red|red.*hello

W przypadku dwóch „wyszukiwanych słów” jest to prawdopodobnie akceptowalne – jednak nie skaluje się ładnie.

Twoje wyrażenie regularne ((hello|red).*){2}()* jest trochę dziwny; to znaczy

(            # Start of group:
 (hello|red) # Match either hello or red
 .*          # Match any number of characters
){2}         # Match this group twice
()*          # Match the empty string any number of times...

więc to pasuje do hello foo hello lub red bar red również.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql_fetch_array ( $result, MYSQL_BOTH ) nie jest dokładny

  2. Jak wykonywać surowe zapytania za pomocą Laravel 5.1?

  3. Uwierzytelnianie przy użyciu starego hasła nie jest już obsługiwane, użyj haseł w stylu 4.1

  4. #1139 – Otrzymano błąd „operand operatora powtórzeń nieprawidłowy” z wyrażenia regularnego

  5. JOIN dane z tej samej tabeli