假如我的SQL如下select REGEXP_SUBSTR('<p><img height="284" alt="" width="450" src="/userfiles/image/img.jpg" />请填写内容<img height="284" alt="" width="450" src="/userfiles/image/img2.JPG" /></p>', '/USERFILES.*\.JPG',1,1,'i') sd from dual
得出的结果是
/userfiles/image/img.jpg" />请填写内容<img height="284" alt="" width="450" src="/userfiles/image/img2.JPG但我只想要第一个JPG的路径,即:/userfiles/image/img.jpg,
不知道我的表达式要怎么改,
REGEXP_SUBSTR函数的第四个参数我一直搞不清楚什么意思,
还有就是怎么来解决通常正则表达式的贪婪原则。
得出的结果是
/userfiles/image/img.jpg" />请填写内容<img height="284" alt="" width="450" src="/userfiles/image/img2.JPG但我只想要第一个JPG的路径,即:/userfiles/image/img.jpg,
不知道我的表达式要怎么改,
REGEXP_SUBSTR函数的第四个参数我一直搞不清楚什么意思,
还有就是怎么来解决通常正则表达式的贪婪原则。
select regexp_substr('<p>
<img height="284" alt="" width="450" src="/userfiles/image/img.jpg" />
请填写内容
<img height="284" alt="" width="450" src="/userfiles/image/img2.JPG" />
</p>',
'/userfiles[^"<>]+\.jpg',1,1,'i') from dual;
STR
-----
aa1cc
SQL> select regexp_substr('aa1ccddaa3cc','aa[[:digit:]]cc',1,2,'i') str from dual;
STR
-----
aa3cc
SQL>
2 '/USERFILES.*?'||'\.JPG',
3 1,
4 1,
5 'i') sd
6 from dual
7 ;
SD
------------------------
/userfiles/image/img.jpg