mysql находит / заменяет символы в начале и конце строки, но не в середине строки - PullRequest
0 голосов
/ 12 декабря 2011

Короткая версия: Мне нужен код MySQL, который изменится

[HREF = "http://a -random-domain.com"] гиперссылка [/ HREF]

в

1012 * гиперссылкой *

  • без путаницы в доменной части и
  • без случайного преобразования любых несвязанных экземпляров "], которые могут встречаться в тексте поля.
  • Домен будет уникальным / другим каждый раз, когда это встречаются.

Длинная версия: Я перемещаю старую базу данных для использования с новым приложением. Старая база данных имеет текстовое поле, которое включает в себя содержимое, такое как:

Это поле данных с [href = "http://somedomain.com"]hyperlink[/href] и более данными и, возможно, другими гиперссылками.

Мне нужно обновить его до стандартного HTML, например,

Это поле данных с гиперссылкой и другими данными и, возможно, другими гиперссылками.

Исправить [href = и [/ href] достаточно просто с помощью REPLACE

update table set field = replace(field, '[href=', '<a href=');

но я запутался в "] закрывающей скобке тега href. И в базе данных есть другие экземпляры"], которые не должны быть изменены, поэтому я не могу просто заменить на "]

Есть ли у mysql какое-то регулярное выражение "lookahead" или другой способ сделать это?

Большое спасибо!

1 Ответ

2 голосов
/ 12 декабря 2011

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

MySQL поддерживает регулярные выражения только для «оценки». Таким образом, вы не можете использовать его для замены или манипулирования данными. Для него будет лучше использовать язык сценариев высокого уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...