regexp 正则表达式(大数据学习)

正则表达式:跨语言的一种写法(sql、java、js、python )
书写正则表达式的规则是一模一样的,只是每一种语言调用的方式不同而已。

# eg:
# 模糊查询: like  regexp 两种
# 1、查询名字以l开头,以i结尾的数据
select * from stu where sname like 'l%i';
# 也可以使用正则表达式: 不太满足条件
select * from stu where sname regexp '^l|i$';
# . 表示任意字符除了\n 以外
# * 表示出现 0 ~ 多次
select * from stu where sname regexp '^l.*i$';

# 练习:书写一个手机号码的正则表达式
^\d{11}$  -- 不太精准
^1[3456789]\d{9}$ -- 不太精准
# 查询student 表中 ,手机号码正确的数据
select * from student where phone regexp '^1[3456789]\d{9}$';
# 练习:邮箱的正则表达式
# 838700991@qq.com  laoyan@163.com laoli@yeah.net.cn
^.+@.+\..+$
# 练习正则的⽤法(此处没有表,只是⼀个sql⽽已,通过返回1还是0表示是否匹配)
mysql> select 'hello' regexp '^he';
+----------------------+
| 'hello' regexp '^he' |
+----------------------+
|                    1 |
+----------------------+
1 row in set (0.06 sec)

mysql> select 'hello' regexp '^hh';
+----------------------+
| 'hello' regexp '^hh' |
+----------------------+
|                    0 |
+----------------------+
1 row in set (0.08 sec)
mysql> select '838700991@qq.com' regexp '^.+@.+\..+$';
+-----------------------------------------+
| '838700991@qq.com' regexp '^.+@.+\..+$' |
+-----------------------------------------+
|                                       1 |
+-----------------------------------------+
1 row in set (0.06 sec)

mysql> select '838700991qq.com' regexp '^.+@.+\..+$';
+----------------------------------------+
| '838700991qq.com' regexp '^.+@.+\..+$' |
+----------------------------------------+
|                                      0 |
+----------------------------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值