尝试将 Drupal 站点中的“files”文件夹位置从/files 更改为/sites/default/files。
为了避免更改其他任何内容,例如
http://www.google.com/profiles/
我正在尝试使用带有单词边界的基本正则表达式。
\bfiles/
快速 checkin regexpal正在按预期工作,但是当我在 phpMyAdmin 搜索中输入上述内容并选中“作为正则表达式”复选框时,我没有得到预期的结果。
两个问题:
我应该如何编写带有单词边界的表达式,以便它在 phpMyAdmin 中工作?
我真的是 SQL 语句的新手!是否可以编写一个 SQL 查询来简单地查找每次出现的“files/”并将其替换为“sites/default/files/”?
最佳答案
根据MySql docs ,使用的正则表达式风格是 POSIX 1003.2。对于这种风格的正则表达式,单词边界如下:
[[:<:]]
(开始)[[:>:]]
(完)
所以你的正则表达式是:
[[:<:]]files/
如果你想使用sql来搜索并替换[[:<:]]files/
的所有实例从表中的特定字段,您可以 use a UDF such as the one found here
此外,在将正则表达式与 MySql 一起使用时,您应该注意以下事项:
Because MySQL uses the C escape syntax in strings (for example, “\n” to represent the newline character), you must double any “\” that you use in your REGEXP strings.
关于mysql - phpMyAdmin 中的正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9962718/