当前位置: 首页 > news >正文

天元建设集团有限公司中标做搜狗网站优化

天元建设集团有限公司中标,做搜狗网站优化,株洲网站建设优化,jsp网站建设作业目录 一、正则的通配符简介1、正则表达式的符号及意义2、各种操作符的运算优先级#xff1a; 二、案例数据要求分析实现输出结果实现2实现3 总结 一、正则的通配符简介 1、正则表达式的符号及意义 符号含义实列/做为转意#xff0c;即通常在/后面的字符不按原来… 目录 一、正则的通配符简介1、正则表达式的符号及意义2、各种操作符的运算优先级 二、案例数据要求分析实现输出结果实现2实现3 总结 一、正则的通配符简介 1、正则表达式的符号及意义 符号含义实列/做为转意即通常在/后面的字符不按原来意义解释如 * “匹配它前面元字符0次或多次/a*/将匹配a,aa,aaa加了”/后/a/* /将只匹配a* .匹配任何一个字符^匹配一个输入或一行的开头/^a/匹配an A而不匹配An a$匹配一个输入或一行的结尾/a$/匹配An a而不匹配an A*匹配前面元字符0次或多次/ba*/将匹配b,ba,baa,baaa匹配前面元字符1次或多次/ba/将匹配ba,baa,baaa?匹配前面元字符0次或1次/ba?/将匹配b,ba(x)匹配x保存x在名为$1…$9的变量中x竖y匹配x或y{n}精确匹配n次{n,}匹配n次以上{n,m}匹配n-m次[xyz]字符集(character set)匹配这个集合中的任一一个字符(或元字符)[^xyz]不匹配这个集合中的任何一个字符/d匹配一个字数字符//d/ /[0-9]//D匹配一个非字数字符//D/ /[^0-9]//s匹配一个空白字符包括/n,/r,/f,/t,/v等/S匹配一个非空白字符等于/[^/n/f/r/t/v]//w匹配一个可以组成单词的字符(alphanumeric这是我的意译含数字)包括下划线如[/w]匹配$5.98中的5等于[a-zA-Z0-9]/W匹配一个不可以组成单词的字符如[/W]匹配$5.98中的 $等于[^a-zA-Z0-9] 备注 ‘( )’ 标记一个子表达式的开始和结束位置。 ‘[]’ 标记一个中括号表达式。 /num 匹配 num其中 num 是一个正整数。对所获取的匹配的引用。 2、各种操作符的运算优先级 转义符圆括号和方括号限定符位置和顺序 具体如下 / 转义符 (), ( ?: ), (?), [] 圆括号和方括号 *, , ?, {n}, {n,}, {n,m} 限定符 ^, $, anymetacharacter 位置和顺序 正则表达式的符号及意义 二、案例 数据 with temp as (select [{favorite[电影:杀死比尔,电视剧:宰相刘罗锅],age15,gender:男}] as attributes ---第一行 union all select [{favorite像风一样的女人,age未知,gender:男}] as attributes ---第二行 union all select [{favorite28, gender:女,age15}] as attributes ---第三行 union all select [{gender:女,favorite[综艺,动漫],age15 }] as attributes ---第四行 )要求 将favorite的值age的值和gender的值取出来 分析 目前从temp表可知表中可知表里面只有一个attributes特征字段这个字段其实包含三个字段分别为favorite和age和gender该字段类型不是标准的json格式哪怕转换成标准的json格式也不太容易假设转成json,你首先要处理最外层的中括号其次json里面的key是有双引号的你需要给key添加双引号再次字段类型也不一致age15和age未知综上分析需要使用regexp_extract函数使用regexp_extract函数需要注意什么注意字段顺序不一样不是统一的这是第一点第二点有些逗号后面有空格有些没有花括号前有些有空格有些没有第三点favorite和age后面是等号gender后面是冒号 实现 select regexp_extract (attributes,favorite\\(.*?)(\\,\\s{0,1}age|\\,\\s{0,1}gender|\\s{0,1}\\}),1) as favorite ,regexp_extract (attributes,age\\(.*?)(\\s{0,1}\\}|\\,\\s{0,1}favorite|\\,\\s{0,1}gender),1) as age ,regexp_extract (attributes,gender\\:(.*?)(\\s{0,1}\\}|\\,\\s{0,1}favorite|\\,\\s{0,1}age),1) as gender from temp ;输出结果 favoriteagegender[“电影”:杀死比尔,“电视剧”:宰相刘罗锅]15男“像风一样的女人”未知男2815女[“综艺”,“动漫”]15女 实现2 虽然说转json比较麻烦但还是可以实现的需要一些技巧主要的问题是加引号其次是去最外层的中括号其他是一些小细节 ----去除空格字符和里面的引号会在加引号时有干扰等,第一个replace去空格第二个去除双引号 select regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,) from temp----处理最外层的中括号,并加最外层的引号 select regexp_replace(regexp_replace(regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,),\\[\\{,\\{\\),\\}\\],\\\\}) from temp----最终处理 select regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,),\\[\\{,\\{\\),\\}\\],\\\\}),gender\\:,gender\\),\\,\\\\:\\),\\,,\\),\\age,\\\\,\\age),\\gender,\\\\,\\gender),\\favorite,\\\\,\\favorite) as attributes from temp 至此终于到最标准的json格式了处理json可以使用get_json_object,也可以使用json_tuple select get_json_object(attributes,$.favorite) ,get_json_object(attributes,$.age) ,get_json_object(attributes,$.gender) from (select regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,),\\[\\{,\\{\\),\\}\\],\\\\}),gender\\:,gender\\),\\,\\\\:\\),\\,,\\),\\age,\\\\,\\age),\\gender,\\\\,\\gender),\\favorite,\\\\,\\favorite) as attributes from temp ) tt select json_tuple(attributes,favorite,age,gender) from (select regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,),\\[\\{,\\{\\),\\}\\],\\\\}),gender\\:,gender\\),\\,\\\\:\\),\\,,\\),\\age,\\\\,\\age),\\gender,\\\\,\\gender),\\favorite,\\\\,\\favorite) as attributes from temp ) tt select b.favorite ,b.age ,b.gender from ( select regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,),\\[\\{,\\{\\),\\}\\],\\\\}),gender\\:,gender\\),\\,\\\\:\\),\\,,\\),\\age,\\\\,\\age),\\gender,\\\\,\\gender),\\favorite,\\\\,\\favorite) as attributes from temp ) tt lateral view json_tuple(attributes,favorite,age,gender) b as favorite,age,gender 实现3 select attributes[favorite] as favorite ,attributes[gender] as gender ,attributes[age] as age from ( select str_to_map(attributes,,,) as attributes from ( select regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace( regexp_replace(attributes,\\n|\\r|\\t|\\s,),\\,),\\:,\\),\\,,\\),\\age,\\,age),\\favorite,\\,favorite),\\gender,\\,gender),(\\[\\{)|(\\}\\]),) as attributes from temp ) tt ) ttm总结 首先需要明确的是上面中的例子是人为制造的非常不规则所以导致处理起来非常麻烦里面有好几个中括号中括号里面是逗号分割还有gender专门后面编成冒号这些无疑加大了处理难度上述使用三种方法进行处理优先级regexp_extract str_to_mapget_json_object;
http://www.zqtcl.cn/news/319801/

相关文章:

  • 阿里云 建设网站北京百度竞价托管公司
  • 怎么样做长久的电影网站安卓手机应用市场
  • 网站建设账户搭建济南网络优化哪家专业
  • 宜兴城乡建设局网站wordpress调用logo
  • 让他人建设网站需要提供的材料女生读电子商务好就业吗
  • 北大荒建设集团网站国内开源代码网站
  • 高端企业网站要多少钱中企动力z云邮箱登录
  • 网站建设视频教程百度云那种自行提取卡密的网站怎么做
  • 网站外链建设与维护网站建设客户调研表
  • 海南省建设银行官方网站招聘营销的主要目的有哪些
  • flask 简易网站开发网站建设和空间
  • 怀化建设网站wordpress静态化插件
  • 网站上的中英文切换是怎么做的大连网站制作优选ls15227
  • 网站开发工作安排广告设计公司有哪些
  • 无人机公司网站建设用什么软件做网站最简单
  • 企业微信app下载安装电脑版淄博网站优化价格
  • 做一个电影网站需要多少钱在线代理服务器网站
  • 怎样制作微信网站办网络宽带多少钱
  • ios开发者账号有什么用嘉兴网站关键词优化
  • 怎样在外贸网站做业务简付后wordpress
  • html网页制作源代码成品长沙 网站优化
  • 长沙做网站哪里好百度招聘 网站开发
  • 创建网站服务器银川建设厅网站
  • 海口建设局网站代运营网站建设
  • 网站建设环境搭建心得体会微信开发者模式
  • 网站点击率多少正常落地页网站
  • 做淘宝店铺有哪些好的网站东莞网站制作建设收费
  • Wordpress 实名认证太原网站搜索优化
  • 大良网站建设dwxw网站可以自己做
  • 自己怎么建网站佛山哪家网站建设比较好