Bac*_*ash 19 regex mysql select
我在使用正则表达式从MySQL表中选择一些结果时遇到了麻烦.
我正在使用此查询
SELECT text
FROM `articles`
WHERE content REGEXP '.*<img.*?src=\"http://www'
ORDER BY date DESC
Run Code Online (Sandbox Code Playgroud)
它说
#1139 - Got error 'repetition-operator operand invalid' from regexp
Run Code Online (Sandbox Code Playgroud)
我使用Notepad ++测试了正则表达式并且它有效,为什么MySQL给我这个错误,我该如何解决它?
Nul*_*ion 42
根据MySQL手册
MySQL使用Henry Spencer实现的正则表达式,旨在与POSIX 1003.2保持一致
POSIX正则表达式不支持将问号?用作星形的非贪婪(懒惰)修饰符以及像PCRE(Perl Compatible Regular Expressions)这样的量词.这意味着你不能使用+?和*?
看起来你只需要使用贪婪的版本,它应该仍然有效.为了避免匹配类似的东西<img style="/*some style*/" src="a.png"> <script src="www.example.com/js/abc.js">,你可以使用一个否定的字符类:
'<img[^>]*src="http://www'
注意:"不必转义,并且.*隐含在开头.
| 归档时间: |
|
| 查看次数: |
28268 次 |
| 最近记录: |