南山公司网站建设,自己做一网站,淡水网站建设公司,wordpress 进不去后台《平凡的世界》评分不错#xff0c;《巴黎圣母院》改变成的电影不错#xff0c;还有1984也蛮好看。 如何使用regexp_extractregexp_replace函数将以上文本中所有书籍名称都提取出来#xff1f;
select substr(regexp_replace(regexp_extract(regexp_… 《平凡的世界》评分不错《巴黎圣母院》改变成的电影不错还有1984也蛮好看。 如何使用regexp_extractregexp_replace函数将以上文本中所有书籍名称都提取出来
select substr(regexp_replace(regexp_extract(regexp_replace(regexp_replace(《平凡的世界》评分不错《巴黎圣母院》改变成的电影不错还有1984也蛮好看。,,《),,》),(.*》),1),.*?(《[^》|^《]》),,$1),2) as books
;代码解析: step1:两个regexp_replace()依次将规整为《将规整为》 step2:regexp_extract正则提取满足pattern.*》时的值此操作的主要目的为剔除最后一个书名号》后的文本内容
select regexp_extract(regexp_replace(regexp_replace(《平凡的世界》评分不错《巴黎圣母院》改变成的电影不错还有1984也蛮好看。,,《),,》),(.*》),1);此时提取出来的结果为 《平凡的世界》评分不错《巴黎圣母院》改变成的电影不错还有《1984》 step3:regexp_replace将书名号前边的内容替换成
#此处的$1是指第一个小括号中的匹配结果
select regexp_replace(《平凡的世界》评分不错《巴黎圣母院》改变成的电影不错还有《1984》,.*?(《[^》|^《]》),,$1)
;此时提取出来的结果为 ,《平凡的世界》,《巴黎圣母院》,《1984》 此处需要注意的是 *1.正则表达式中用了非贪婪匹配.*?如果使用贪婪匹配.*最终返回的结果将会是 ,《1984》 *2若省去step2的操作提取出来的结果不满足条件
select regexp_replace(regexp_replace(regexp_replace(《平凡的世界》评分不错《巴黎圣母院》改变成的电影不错还有1984也蛮好看。,,《),,》),.*?(《[^》|^《]》),,$1)
;此时提取出来的结果为 ,《平凡的世界》,《巴黎圣母院》,《1984》也蛮好看。 step4:substr截取除第一个逗号之外的其余内容
select substr(,《平凡的世界》,《巴黎圣母院》,《1984》,2)
;最终提取出来的结果为 《平凡的世界》,《巴黎圣母院》,《1984》