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

MySQL REGEXP граници на думи [[:<:]] [[:>:]] и двойни кавички

Позволете ми да цитирам документацията първо:

От документацията можем да видим причината за вашия проблем и той не е причинен от каквото и да е бягство. Проблемът е, че се опитвате да съвпаднете с границата на думата [[:<:]] точно в началото на низа, което няма да работи, защото границата на думата, както можете да видите от документацията, разделя символ на дума от символ, който не е дума, но във вашия случай първият знак е " който не е символ на дума, така че няма граница на думата, същото важи и за последния " и [[:>:]] .

За да работи това, трябва да промените малко израза си на този:

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

Забележете как границата на думата разделя символ, който не е дума " от символ на дума w в началото и " от d в края на низа.

РЕДАКТИРАНЕ: Ако винаги искате да използвате граница на думата в началото и края на низа, без да знаете дали ще има действителна граница, тогава можете да използвате следния израз:

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

Това ще съвпада или с граница на думата в началото или с началото на низа ^ и същото за края на границата на думата или края на низа. Наистина ви съветвам да проучите данните, които се опитвате да съпоставите и да потърсите общи модели и да не използвате регулярни изрази, ако те не са подходящият инструмент за работата.

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. Какво означава и прави MYSQLI_NUM?

  2. Вмъкване в същата таблица, задействане на mysql

  3. Дата и час след вмъкването. Лятно часово време

  4. Използване на utf8mb4 с php и mysql

  5. Компилиране на PHP 5.1.6 с PDO MySQL