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

Granice słów MySQL REGEXP [[:<:]] [[:>:]] i podwójne cudzysłowy

Pozwolę sobie zacytować dokumentację po pierwsze:

Z dokumentacji możemy zobaczyć przyczynę problemu i nie jest on spowodowany ucieczką. Problem polega na tym, że próbujesz dopasować granicę słowa [[:<:]] na samym początku ciągu, co nie zadziała, ponieważ granica słowa, jak widać z dokumentacji, oddziela znak słowa od znaku niebędącego słowem, ale w twoim przypadku pierwszym znakiem jest " który nie jest znakiem słowa, więc nie ma granicy słowa, to samo dotyczy ostatniego " i [[:>:]] .

Aby to zadziałało, musisz nieco zmienić swoje wyrażenie na to:

"[[:<:]]word[[:>:]]"
 ^^^^^^^    ^^^^^^^

Zwróć uwagę, jak granica słowa oddziela znak niebędący słowem " od znaku słowa w na początku i " z d na końcu ciągu.

EDYTUJ: Jeśli zawsze chcesz używać granicy słowa na początku i na końcu ciągu, nie wiedząc, czy istnieje rzeczywista granica, możesz użyć następującego wyrażenia:

([[:<:]]|^)"word"([[:>:]]|$)

To dopasuje granicę słowa na początku lub początek ciągu ^ i to samo dla końca granicy słowa lub końca ciągu. Naprawdę radzę przestudiować dane, które próbujesz dopasować, i szukać wspólnych wzorców i nie używać wyrażeń regularnych, jeśli nie są one odpowiednim narzędziem do pracy.

Pokaz SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić istnienie danych w dwóch kolumnach w dwóch różnych tabelach? MySQL

  2. Różnica dat MySQL

  3. Jak obliczyć medianę w MySQL

  4. Wewnętrzny błąd serwera Django 500 - Niewłaściwie skonfigurowany:Błąd podczas ładowania modułu MySQLdb:

  5. Jak stworzyć mapę witryny za pomocą PHP i MySQL