说说parse_url和正则表达式,在SQL中如何解析字符串
学习更多,欢迎关注微信公众号:Excel办公小技巧
SQL作为一种结构化查询语言,方便我们快速拿到大量存储规范的数据。不过我们也会遇到不能直接拿到我们想要的数据格式,比如我们要从URL中拿到某个参数值或是拿到某一字符串中的指定长度,今天我们介绍两个功能来帮助我们:parse_url函数以及正则表达式功能。
1. parse_url函数提取URL需求信息
1.1 主机HOST
select parse_url('https://mp.weixin.qq.com/s/bblf5-0Ur8MUgG02kpOc5Q?case=111','HOST')
结果:mp.weixin.qq.com
1.2 获取URL路径PATH
select parse_url('https://mp.weixin.qq.com/s/bblf5-0Ur8MUgG02kpOc5Q?case=111','PATH')
结果:/s/bblf5-0Ur8MUgG02kpOc5Q
1.3 获取协议PROTOCOL
select parse_url('https://mp.weixin.qq.com/s/bblf5-0Ur8MUgG02kpOc5Q?case=111','PROTOCOL')
结果:https
1.4 获取?后面的内容QUERY
select parse_url('https://mp.weixin.qq.com/s/bblf5-0Ur8MUgG02kpOc5Q?case=111','QUERY')
结果:case=111
1.5 获取?后面参数对应的值
select parse_url('https://mp.weixin.qq.com/s/bblf5-0Ur8MUgG02kpOc5Q?case=111','QUERY','case')
结果:111
1.6 获取#后的内容:
select parse_url('https://mp.weixin.qq.com/s/bblf5-0Ur8MUgG02kpOc5Q?case=#abc','REF');
结果:abc
2. 正则表达式提取需求信息
正则表达式是一种字符的匹配模型,在很多语言中都会用到。本篇文章通过SQL里的regexp_extract函数实现的几个小案例带大家了解下,详细语法后续单独作为一篇文章介绍。
语法:regexp_extract(要提取的字符串,正则表达式,0(全部返回)或者1(返回第一部分),2,3...)
2.1 提取数字部分
[0-9]表示数字,{1,100}表示数字个数在1-100之间,0表示全部返回
select regexp_extract('acbd 1324','[0-9]{1,100}',0)
或者使用+返回一个或多个或者{1,}不写最大值约束
select regexp_extract('acbd 1324','[0-9]+',0)
结果:1324
2.2 提取英文部分
select regexp_extract('acbd 1324','[a-zA-Z]+',0)
结果:acbd
2.3 提取中文部分
select regexp_extract('acbd 1324中文部分','[\\u4e00-\\u9fa5]+',0)
结果:中文部分
2.4 提取数字和英文部分
2.4.1 中间包含其他字符,如空格
select regexp_extract('acbd 1324中文部分','[\\u4e00-\\u9fa5]+',0)
结果:acbd 1324
2.4.2 中间包含其他字符,如下划线
select regexp_extract('acbd_1324中文部分','\\w+',0)
结果:acbd_1324
2.4.3 若数字字母相连
select regexp_extract('acbd1324中文部分','[A-Za-z0-9]+',0)
结果:acbd1324
2.5 提取浮点类型数值
select regexp_extract('acbd1324.33中文部分','(\\d+)(\\.\\d+)',0)
结果:1324.33
2.6 有负数怎么办
select regexp_extract('acbd:-1324.33','(-*\\d+)(\\.\\d+)',0)
结果:-1324.33
说说parse_url和正则表达式,在SQL中如何解析字符串相关推荐
- SQL中实现截取字符串的函数
SQL中实现截取字符串的函数 如果想实现从数据库中取数据时截取一个字段下的内容或者截取一串字符串,则能够实现这种效果的函数有Left,Right,SubString三个函数. 1.Left函数:Lef ...
- linq to sql中修改连接字符串
如果在类库中在添加linq to sql并连接完数据库服务器后会自动生成settings.settings文件,app.config文件用于存储连接字符串(图一) 如要修改连接字符串要修改哪个还是要全 ...
- 【正则表达式】正则表达式匹配SQL中的函数名
文章目录 正则1: \s{1}\S+\s{0}\((.*?)\) 解释: 正则 必须以 空格开头,紧接着中间字符串一次到多个,紧接着没有空格,紧接着是左括号,中间一些东西,右括号 正则2: ([\w] ...
- mybatis中的xml中拼接sql中参数与字符串的方法
场景 mybatis中接口方法对应的xml文件中的方法中,需要使用模糊搜索, 查询以参数开头的记录. 错误的sql拼接: <if test="locationVO != null an ...
- SQL中十六进制和字符串之间的转换
Java中的转换非常简单便捷,但有时候需要在后台实现转换,这里我包装成函数.Mark一下 –字符串转十六进制 CREATE FUNCTION dbo.StrToHex(@str varchar(100 ...
- SQL中常用的字符串CHARINDEX函数和PATINDEX函数详解!
今天整理了些日常可能经常遇到的一些处理字符串的函数,有些可能在写SQL时突然间想不到如何使用,今天就给大家总结两个函数的应用方法,以备不时之需!记得点赞收藏! CHARINDEX(expression ...
- SQL中常用的字符串LEFT函数和RIGHT函数详解!
今天继续整理日常可能经常遇到的一些处理字符串的函数,记得点赞收藏!以备不时之需!看到最后有惊喜! LEFT(expression, length)函数 解析:从提供的字符串的左侧开始提取给定长度的字符 ...
- SQL中常用的字符串REVERSE函数和SUBSTRING函数详解!
今天继续整理日常可能经常遇到的一些处理字符串的函数,记得点赞收藏!以备不时之需! REVERSE(expression)函数解析:SQL Server中的此函数用于反转(颠倒)指定的字符串,也就是说把 ...
- SQL中返回一个字符串在另一个中存在的次数
ALTER FUNCTION [reg].[f_GetSameStringCntNoSort] ( @str1 VARCHAR(100),--源字符串,取该串中的@strLen长度的字符是否在目的字符 ...
最新文章
- python从文件中读取数据_Python3 中把txt数据文件读入到矩阵中的方法
- 浅析微信支付:开发前的准备
- 课后作业:字符串加密
- ASP.NET WebServices 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。
- linux设置挂载服务端防火墙_Linux Tomcat使用之前预配置(端口开放关闭 防火墙设置 硬盘挂载 安装文件)...
- Qt Linguist手册
- 同花顺怎么导出数据到excel_Excel怎么导出手机通讯录vCard文件
- pip安装报错:is not a supported wheel on this platform
- 850是什么意思_沃尔沃为什么不是一线豪华品牌?
- 制造业数字化经营新思路:管理平台架构及三大落地方法论
- mysql报错注入实战_手工注入——MySQL手工注入实战和分析
- Android开发笔记(六十二)HTTP数据格式的解析
- 本地与远程服务器之间的文件传输
- 软件平台与中间技术复习
- 闽南歌歌词有一句电子计算机,一首闽南歌,有一句歌词是(提起男儿的志气)歌名是什么?...
- 如何制作一款Chrome浏览器扩展程序
- DALAO们好我是新手
- 2015年度个人总结(公司版)
- BC20 MQTT与GPS功能测试
- SoX 安装(Ubuntu+win10)的新手误区和正确安装方法。
热门文章
- 卫星影像在浦北县白石水镇、北通镇等9个镇耕地开垦项目中的应用
- Python拉勾网数据采集与可视化
- mysql5.7 1045 pc,解决MySQL5.7报错ERROR 1045 (28000): Access denied for user
- 设置PHP最长运行时间
- 116. 填充同一层的兄弟节点
- 怎样用计算机打出Abc,49.智能ABC输入秘籍四招:
- 使用存储过程实现千万级的大批量数据插入
- html复选框美化插件,Bootstrap复选框和单选按钮美化插件
- eplan怎样创建和修改图框_EPLAN P8项目创建
- 小学生机器人挑战赛_创意放飞梦想 宝鸡中小学生青少年机器人竞赛显身手