sql spark sql正则表达式式 替换字母+数字

专注Android开发,关注最新的Android技术
正则表达式与SQL笔记
一:正则表达式 (regex)
正则表达式描述了匹配的模式。
1.常用匹配模式:
\ 匹配反斜线
\d 匹配数字
\D 匹配非数字
\w 匹配字母、数字、下划线
匹配行的开始
匹配行的结尾
匹配除了”.”字符本身之外的所有字符
\n 匹配换行
匹配某个数字
匹配小写字母
2.常用匹配数量
? 匹配0次或1次
+ 匹配1次或1次以上(至少1次)
* 匹配任意次
{n} 匹配n次
{n,} 匹配至少n次
3.匹配逻辑
匹配“或”逻辑
匹配“与”逻辑
Java常用的正则工具类:
正则表达式的编译表示形式。
public static Pattern compile(String regex) 将给定的正则表达式编译到模式中。
public Matcher matcher(CharSequence input) 创建匹配器
Matcher类 (匹配器)
public boolean matches() 执行匹配,如果匹配成功,返回true.
public String group()返回已经匹配的子字符串。
boolean find()
尝试查找与该模式匹配的输入序列的下一个子序列。
正则表达式的步骤:
(1)、String str=””;
Pattern pattern = Pattern.compile(“\d+”);// 将正则表达式编译到Pattern中
(2)、Matcher matcher = pattern.matcher(str);// 将编译好的Pattern对象创建匹配器
(3)、boolean matches = matcher.matches();//
String类支持正则的方法:
1.public String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。
2.public boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式。
3.public String replaceAll(String regex,String replacement)
使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串。
二:SQLite数据库管理系统
SQLite是一种小型的、轻量级、零配置的关系型数据库,常嵌入于便携式设备(eg:手机);
数据库文件名
打开或创建数据库文件
SQLite的“点命令”:
.database 显示数据库文件
.schema 表名称
查看某表的结构(建表语句)
退出SQLite环境
.mode column 开启列模式
.header on 显示表头
常用SQL语句:
1.建表语句
create table 表名称(
primary key [autoincrement],
约束 (eg: not null),
2.插入数据
insert into 表名称(字段1,字段2….)values(值1,值2,…);
3.查询数据
select 字段1,字段2,… from 表名称 [where 字段名 操作符 字段值 and xxx] [order by 字段名]
(注:模糊查询
后面的setString(1,”%”+name+”%”
就可以了))
4.修改数据
update 表名称 set 字段名1=值1,字段名2=值2… [where 字段名 操作符 字段值 and xxx]
5.删除数据
delete from 表名称 [where
字段名 操作符 字段值 and xxx]
drop table 表名称;
alter table 表名称 add column 字段名 数据类型
三:JDBC(JavaDatabase Connection)
1.DriverManager 驱动管理类
public static Connection getConnection(String url) 试图建立到给定数据库URL的连接
2.Connection 数据库连接类
PreparedStatement prepareStatement(String sql)
3.PreparedStatement
表示预编译的SQL语句的对象。
setString(int parameterIndex,String x)
setInt(int parameterIndex,int x)
setXXX(xxx)
int executeUpdate() 执行增、删、改的操作。
ResultSet executeQuery() 执行查询,返回结果集
4.ResultSet 查询结果集
boolean next()
将光标下移,如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
String getString(String columnLabel)
Class.forName(“org.sqlite.JDBC”);// 加载数据库驱动程序
connection=DriverManager.getConnection(“jdbc:sqlite:/g:/1000phone/test/mydb.db”);//
获取数据库的连接
String insertsql=”insert into student (name,age,score)values(“xiao”,25,85.5)”;
ps=connection.prepareStatement(insertsql);// 获取数据库操作对象
SQL正则表达式
SQL语句与正则表达式
SQL语句--like和正则表达式的使用
SQL 查询,正则表达式
在SQL语句中使用正则表达式
如何在SQL语句中使用正则表达式
关于SQLSERVER中使用正则表达式的方式
SQL中的正则表达式(REGEXP)
使用正则表达式解析SQL语句
没有更多推荐了,正则表达式替换SQL语句中的字段
作者:用户
浏览:720 次
我想用正则表达式匹配一个insert的SQL语句,能够自动地将变量赋给对应的字段,比如SQL=“insertintotable(item1,item2,item3)values(:item1,:ite
问题描述我想用正则表达式匹配一个insert的SQL语句,能够自动地将变量赋给对应的字段,比如SQL=“insert into table(item1,item2,item3) values(:item1,:item2,:item3)”map.put(item1,"111")map.put(item2,"222")map.put(item3,"333")我想用正则表达式自动的将SQL语句中的:item1,:item2,:item3替换成map中对应的“111”,"222","333"请问我该怎么写正则表达式的匹配语句和 对应的方法。解决方案搞错了。忘了加上非捕获组。刚才代码未验证。呵呵,偷懒了。String SQL="insert into table(item1,item2,item3) values(:item1,:item2,:item3)"; Map map = new HashMap();map.put("item1","111"); map.put("item2","222"); map.put("item3","333"); Pattern p=Pattern.compile("(?::)(\w+)(?:\b)");
Matcher m=p.matcher(SQL);
StringBuffer result=new StringBuffer();
while (m.find()) {
String key=m.group(1);
m.appendReplacement(result,(String)map.get(key));
m.appendTail(result);
String resultSql=result.toString();System.out.println(resultSql);解决方案二:用PreparedStatement多好啊同样可以满足你的需求而且无需考虑单引号的转义,注入攻击这些问题解决方案三:引用不建议这么做,可能导致未验证BUG。至少 同上,这种做法无法防范SQL注入攻击解决方案四:Pattern p=Pattern.compile(":(\w+)\b");Match m=p.matcher(SQL);StringBuffer result=new StringBuffer();while (m.find()) {
String key=m.group(1);
m.appendReplacement(result,map.get(key));}m.appendTail(result);String resultSql=result.toString();不建议这么做,可能导致未验证BUG。至少对于这样的SQL是不适用的:SQL=“insert into table(item1,item2,item3) values('AAA:item1',:item2,:item3)”.会把字符串中的值替换掉。SQL还是用preparedStatement方式注入参数比较好。
【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?&&
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
40+云计算产品,6个月免费体验
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
云服务器9.9元/月,大学必备下次自动登录
现在的位置:
& 综合 & 正文
SQL 中使用正则表达式过滤字母或数字
-- '%[^a-z]%'
CREATE Function [dbo].[RemoveNonAlphaCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
While PatIndex('%[^a-z]%', @Temp) & 0
Set @Temp = Stuff(@Temp, PatIndex('%[^a-z]%', @Temp),
Return @TEmp
-- '%[^a-z0-9]%'
CREATE Function [dbo].[RemoveNonAlphaNumericCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
While PatIndex('%[^a-z0-9]%', @Temp) & 0
Set @Temp = Stuff(@Temp, PatIndex('%[^a-z0-9]%', @Temp), 1, '')
Return @Temp
-- '%[^0-9]%'
CREATE Function [dbo].[RemoveNonNumericCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
While PatIndex('%[^0-9]%', @Temp) & 0
Set @Temp = Stuff(@Temp, PatIndex('%[^0-9]%', @Temp), 1, '')
Return @TEmp
【上篇】【下篇】服务器常用软件
服务器常用软件
酷云中国八折钜惠
脚本之家服务器常用软件
腾讯云服务器活动,云服务器1核2G、1M带宽,加赠50GB对象存储空间,只要10元/月...
微信公众号搜"脚本之家"关注,各种活动等着你
& 服务器安全配置常用软件
React.js 小书 学习手册agentzh 的 Nginx 教程七天学会NodeJSUNIX TOOLBOX 中文版在线手册CSS hack大全CSS 挑选器演示Sketch 3 快捷键一览表(中文版)Markdown 语法解释 (简体中文版)Activiti 5.15 用户手册中文版
平面设计教程
07-1907-1907-1907-1907-19
编程开发教程
07-1907-1907-1707-1707-16
网络通讯软件教程
07-1607-1207-0907-0307-02
媒体工具软件教程
07-1807-1807-1807-1707-17
07-1907-1807-1307-1107-10
07-1907-1907-1907-1907-18
安卓手机教程
07-1907-1907-1907-1907-19
苹果手机教程
07-1907-1907-1907-1907-18
手机教程推荐
手机APP推荐
推荐脚本特效
更多+服务器常用工具
2IIS 7.0(微软Web服务器组件IIS 7.0安装包) 官方安装版
更多+在线工具
1、常用参考表对照表
HTTP状态码、ASCII码对照
2、正则表达式工具
正则表达式在线生成、测试
3、颜色相关工具
与颜色解决的相关工具
4、编码转换工具
汇总了各种编码的转换工具
5、站长工具
各类和代码相关的工具
6、密码工具箱
密码加密、解密等工具
7、二维码生成工具
,用户可根据自身需求生成文本二维码、电话号码
8、JavaScript压缩/格式化/加密工具
可以轻盈压缩/格式化/加密JavaScript
9、在线计算器
科学计算器在线采用
10、在线艺术字工具
生活中实用小工具汇总
欢迎交换友情链接 联系qq:qq号码 友情链接
百度IT之家51CTO开发吾爱破解论坛绿色资源网思缘设计下载吧动态网站制作JZ5U绿色下载站绿色先锋下载未来软件园A5源码下载多多软件站飘浮软件红黑联盟当下软件园格子啦下载9553下载3D溜溜网hao123下载php中文网完美下载
[ 脚本之家手机版 ]
[ 脚本之家公众号 ]Error 404 (Not Found)!!1
404. That’s an error.
The requested URL /8478/ was not found on this server.
That’s all we know.

我要回帖

更多关于 sql中正则表达式 的文章

 

随机推荐