当前位置: 首页 > 编程日记 > 正文

Oracle 正则表达式

ORACLE中的支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,
但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。
POSIX 正则表达式由标准的元字符(metacharacters)所构成:
'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。
'$' 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹
配 '\n' 或 '\r'
'.' 匹配除换行符之外的任何单字符。
'?' 匹配前面的子表达式零次或一次。
'+' 匹配前面的子表达式一次或多次。
'*' 匹配前面的子表达式零次或多次。
'|' 指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的
字符串。
'( )' 标记一个子表达式的开始和结束位置。
'[]' 标记一个中括号表达式。
'{m,n}' 一个精确地出现次数范围,m=<出现次数<=n,'{m}'表示出现m次,'{m,}'表示至少
出现m次。
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。
字符簇: 
[[:alpha:]] 任何字母。
[[:digit:]] 任何数字。
[[:alnum:]] 任何字母和数字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大写字母。
[[:lower:]] 任何小写字母。
[[:punct:]] 任何标点符号。
[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]
各种操作符的运算优先级
\转义符
(), (?:), (?=), [] 圆括号和方括号
*+, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序
| 
*/
--创建表
create table fzq
(
id varchar(4),
value varchar(10)
);
--数据插入
insert into fzq values
('1','1234560');
insert into fzq values
('2','1234560');
insert into fzq values
('3','1b3b560');
insert into fzq values
('4','abc');
insert into fzq values
('5','abcde');
insert into fzq values
('6','ADREasx');
insert into fzq values
('7','123 45');
insert into fzq values
('8','adc de');
insert into fzq values
('9','adc,.de');
insert into fzq values
('10','1B');
insert into fzq values
('10','abcbvbnb');
insert into fzq values
('11','11114560');
insert into fzq values
('11','11124560');
--regexp_like
--
查询value中以1开头60结束的记录并且长度是7位
select * from fzq where value like '1____60';
select * from fzq where regexp_like(value,'1....60');
--查询value中以1开头60结束的记录并且长度是7位并且全部是数字的记录。
--
使用like就不是很好实现了。
select * from fzq where regexp_like(value,'1[0-9]{4}60');
-- 也可以这样实现,使用字符集。
select * from fzq where regexp_like(value,'1[[:digit:]]{4}60');
-- 查询value中不是纯数字的记录
select * from fzq where not regexp_like(value,'^[[:digit:]]+$');
-- 查询value中不包含任何数字的记录。
select * from fzq where regexp_like(value,'^[^[:digit:]]+$');
--查询以12或者1b开头的记录.不区分大小写。
select * from fzq where regexp_like(value,'^1[2b]','i');
--查询以12或者1b开头的记录.区分大小写。
select * from fzq where regexp_like(value,'^1[2B]');
-- 查询数据中包含空白的记录。
select * from fzq where regexp_like(value,'[[:space:]]');
--查询所有包含小写字母或者数字的记录。
select * from fzq where regexp_like(value,'^([a-z]+|[0-9]+)$');
--查询任何包含标点符号的记录。
select * from fzq where regexp_like(value,'[[:punct:]]');


 

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

用户名:/^[a-z0-9_-]{3,16}$/

密码:/^[a-z0-9_-]{6,18}$/

十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/

电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

IP 地址:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

HTML 标签:/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

Unicode编码中的汉字范围:/^[u4e00-u9fa5],{0,}$/

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*/>
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国大陆邮政编码:[1-9]\d{5}(?!\d)
评注:中国大陆邮政编码为6位数字

匹配身份证:\d{15}|\d{18}
评注:中国大陆的身份证为15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

去除精度纬度中非浮点数

 select jd,wd from xx_xa_xsczaqpc t where t.id not in  (

select id from xx_xa_xsczaqpc where regexp_like(jd,'^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$')) ; 

是双小数点的数

select xx_jbxx_id,jd,wd from xx_xa_xsczaqpc t where regexp_like(jd,'^[1-9]\d*\.\d*\.\d*[1-9]\d*$')

转载于:https://www.cnblogs.com/zq281660880/archive/2013/03/22/2975995.html

相关文章:

制作 Swift 和 Objective-C Mixed 的 Pod

来源&#xff1a;南栀倾寒 www.jianshu.com/p/c7623c31d77b 如有好文章投稿&#xff0c;请点击 → 这里了解详情 知识背景 What is CocoaPods&#xff08;https://guides.cocoapods.org/using/getting-started.html&#xff09; What did CocoaPods do&#xff1f;&#x…

SearchRequestBuilder常用方法说明

SearchRequestBuilder常用方法说明 (1) setIndices(String... indices)&#xff1a;上文中描述过&#xff0c;参数可为一个或多个字符串&#xff0c;表示要进行检索的index&#xff1b;(2) setTypes(String... types)&#xff1a;参数可为一个或多个字符串&#xff0c;表示要进…

计算机知识课后反思,计算机硬件和软件知识课后反思

计算机硬件和软件知识课后反思《计算机系统组成》—计算机硬件和软件知识一课是七年级信息技术中《信息技术基础》里的知识。在学习这之前&#xff0c;学生虽然都使用过计算机&#xff0c;但对于计算机的系统组成、主机内的硬件知识基本知之甚少。但是对这些知识学生又充满了好…

iOS超全开源框架、项目和学习资料汇总:UI篇

2017-01-30 iOS巍 CocoaChina原文 上下拉刷新控件 1. MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。&#xff08;推荐&#xff09; 2. SVPullToRefresh --下拉刷新控件4500star&#xff0c;…

NYOJ 90 —— 求正整数n划分为若干个正整数的划分个数

整数划分 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB描述将正整数n表示成一系列正整数之和&#xff1a;nn1n2…nk&#xff0c; 其中n1≥n2≥…≥nk≥1&#xff0c;k≥1。 正整数n的这种表示称为正整数n的划分。求正整数n的不 同划分个数。 例如正整数6有如…

调整命令行的列数和行数 mode con: cols=100 lines=10000

mode con: cols100 lines10000转载于:https://www.cnblogs.com/passer1991/archive/2013/03/25/2980285.html

写一个 iOS 复杂表单的正确姿势

前言 这几天项目的新需求中有个复杂的表单界面&#xff0c;在做的过程中发现要比想象中复杂很多&#xff0c;有好多问题需要处理。有很多东西值得写下来好好梳理下。 需求分析&#xff1a; 6创建网店1.png上图便是UI根据需求给的高保真&#xff0c; 我们先根据这张图片来描述一…

2014计算机三级网络技术,2014计算机三级网络技术综合题解题思路

2014计算机三级网络技术综合题解题思路,全部自码第一小题 IP地址的计算公式正常IP地址计算&#xff1a;已知IP地址&#xff1b;子网掩码&#xff1b;地址类别&#xff1a;A类地址&#xff1a;1—126(00)B类地址&#xff1a;128—191(10)C类地址&#xff1a;192—223(110) D类地…

word 生成HTML

View Code 1 string wordPath Server.MapPath("/Fileword/" FileUpload1.FileName); 2 string htmlPath Server.MapPath("/Fileword/测试.html");3 //上传word文件4 FileUpload1.SaveAs(wordP…

CCF系列之画图(201409-2)

试题编号&#xff1a; 201409-2试题名称&#xff1a; 画图时间限制&#xff1a; 1.0s内存限制&#xff1a; 256.0MB问题描述&#xff1a; 问题描述在一个定义了直角坐标系的纸上&#xff0c;画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2&#xff0c;纵坐标范围从y1到y2…

大连理工计算机专业导师,大连理工大学计算机科学与技术学院研究生导师简介-申彦明...

大连理工大学计算机科学与技术学院研究生导师简介-申彦明大连理工大学 免费考研网/2016-05-04申彦明院系&#xff1a;计算机科学与技术学院办公电话&#xff1a;无电子信箱&#xff1a;shendlut.edu.cn更新时间&#xff1a;2014-4-4其他专业&#xff1a;计算机系统结构个人简介…

iOS基础问答面试题连载-附答案

2017-02-02 timhbw CocoaChina以下是一些自己收集的比较基础的问题&#xff08;大神可以忽略&#xff09;&#xff0c;附上答案&#xff0c;方便大家阅读。俗话说得好&#xff0c;基础不牢&#xff0c;地动山摇。文章末尾会提供PDF版的文档&#xff0c;方便大家木有网的时候也可…

一个非常简单的 ASP.NET MVC 示例:长轮询(又叫:反向 AJAX,英文名:Comet)实现...

关于 长轮询&#xff08;又叫&#xff1a;反向 AJAX&#xff0c;英文名&#xff1a;Comet&#xff09;的介绍&#xff0c;请查看&#xff1a;反向Ajax&#xff0c;第1部分&#xff1a;Comet介绍 下面是代码实现&#xff1a; UI: <p><input type"button" onc…

周记 2016.4.5

1. BUILD_IDpleaseDontKillMe /usr/local/tomcat_car/bin/shutdown.sh /usr/local/tomcat_car/bin/startup.sh 2. windown中mysql解压版设置密码: 最开始mysql没有密码&#xff0c;启动mysql后&#xff1a; cmd -- mysql -u root ----- use mysql , 然后执行下面命令 update…

西北工业大学21计算机考研,西北工业大学2018年计算机考研879专业综合考试大纲...

题号&#xff1a;879《专业综合》考试大纲《专业综合》含数据结构、计算机网络、计算机组成原理、信号与系统四部分组成&#xff0c;四选二。一、数据结构1. 数据结构、抽象数据类型的概念;2. 线性结构的相关内容。通用线性表和特殊线性表(栈、队列、广义表等)的逻辑结构以及物…

iOS 实现多个可变 cell 复杂界面的制作

来源&#xff1a;飘游人 www.jianshu.com/p/9fc838d46f5e 如有好文章投稿&#xff0c;请点击 → 这里了解详情 在日常的开发中&#xff0c;有时会遇到内容块比较多&#xff0c;且又可变的界面&#xff1a; 这个界面中有些内容块是固定出现的&#xff0c;比如最上面的商品详情图…

做销售如何跟单,逼单!共20招!(转)

逼单是整个销售业务过程中最重要的一个环节。如果逼单失败你的整个业务就会失败&#xff0c;其实整个业务过程就是一个“逼”的过程&#xff0c;逼要掌握技巧&#xff0c;不要太操之过急&#xff0c;也不要慢条斯理&#xff0c;应该张弛有度&#xff0c;步步为营&#xff0c;也…

how to write Makefile

http://www.cnblogs.com/aoyihuashao/archive/2010/01/18/1650865.html转载于:https://www.cnblogs.com/hSheng/archive/2013/03/27/2985145.html

职称计算机word2007难吗,职称计算机word2007原题

全国职称计算机考试题库——word2007模块word2007模块第1套试题1.修改当前文本窗体类型为"数字",默认数字为"5"。2.设置用户在键入“中兴瑞典”时自动替换为“中星睿典”。3.将当前图片位置改为四周型环绕。4.用WORD的插入技术,插入如下字符&#xff1a;④…

iOS 9 通用链接(Universal Links)

来源&#xff1a;iOS_小松哥 www.jianshu.com/p/734c3eff8feb 如有好文章投稿&#xff0c;请点击 → 这里了解详情 什么是Universal Links? 在iOS9之前&#xff0c;对于从各种从浏览器、Safari中唤醒APP的需求&#xff0c;我们通常只能使用scheme。但是这种方式需要提前判断系…

为什么你的工作经验不值钱

前言 每年的三月到六月&#xff0c;都是招聘高峰&#xff0c;除了大量的应届毕业生涌入社会之外&#xff0c;还有一些工作了一两年尚未找到稳定归属感的人&#xff0c;也会开始投递简历&#xff0c;是的&#xff0c;基本都是在拿了年终奖之后。作为前端技术主管&#xff0c;有幸…

http://bbs.phome.net/showthread-13-45519-0.html

适用于想使用EmpireCMS建站的用户&#xff1b;EmpireCMS零基础的用户&#xff1b;会使用Dreamweaver设计简单表格式模板的用户。教程在线观看&#xff1a; 安装实例教程&#xff1a; http://www.phome.net/doc/ecmsedu/rm/install.htm入门实例教程&#xff1a; http://www.phom…

计算机32位操作系统最大识别到内存,win7 32位系统可以支持多大的内存_win7 的32位系统最大支持多少g的内存...

大家都知道win7系统有32位和64位之分&#xff0c;而两者的安装配置是不一样的&#xff0c;一般4G内存的我们安装64位的系统&#xff0c;但是很多用户不知道win7 32位系统可以支持多大的内存&#xff0c;这就给大家分享一下win7 的32位系统最大支持多少g的内存吧。一、内存和操作…

33个2017年必须了解的iOS开源库

原文 本文翻译自Medium&#xff0c;原作者为 Paweł Białecki 照片版权&#xff1a;&#xff08;Unsplash/Markus Pe&#xff09; 你好&#xff0c;iOS 开发者们&#xff01;我的名字叫 Paweł&#xff0c;我是一个独立 iOS 开发者&#xff0c;并且是 Enter Universe 的作者。…

codeforces 610D D. Vika and Segments(离散化+线段树+扫描线算法)

题目链接&#xff1a; D. Vika and Segments time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVika has an infinite sheet of squared paper. Initially all squares are white. She introduced a two-dimensional c…

ubuntu下安装redis

安装reids服务器 apt-get install redis-server 测试是否安装成功 redis-cli 安装phpredis扩展 #wgethttps://github.com/nicolasff/phpredis/downloads #tar -zxvf nicolasff-phpredis-2.1.3-124-gd4ad907.tar.gz # mv nicolasff-phpredis-d4ad907 php-5.3.8/ext/phpredis/ # …

往往存储与计算机硬盘或其他,硬盘是计算机系统中信息资源最重要的存储设备其所存放信息-Read.DOC...

硬盘是计算机系统中信息资源最重要的存储设备其所存放信息-ReadPAGEPAGE 2摘要关键字&#xff1a;磁盘、硬盘、中断13、扩展中断13、分区表、MBR、DBR、DPT、Boot、CMOS、FAT、柱面、磁道、磁头、扇区随着科学技术的不断发展和社会信息化程度的不断提高&#xff0c;电脑已逐渐深…

【Ghost Blog】如何给Ghost Blog添加背景音乐

昨天闲着无聊&#xff0c;就给自己的电脑装了一个Ghost的博客&#xff0c;打开博客的第一眼就被震撼到了&#xff0c;我们可以发现界面十分的简介。。。。上面的都是废话 我们来看一看我我选择的音乐播放器——网易云音乐&#xff0c;这个播放器就是在一个歌曲上点开之后有一个…

AE 动画直接变原生代码:Airbnb 发布开源动画库 Lottie

原文 Airbnb 发布的 Lottie 是一个面向 iOS、Android 和 React Native 的开源动画库。 简单来说&#xff0c;就是可以直接利用 AE 导出的 JSON 动画文件&#xff0c;将其解析为原生代码&#xff0c;并跨平台运行在设备上。 根据身边朋友的试用&#xff0c;通过 Canvas 绘制动画…

纹理贴图的模式设置

1 要对纹理进行任何的操作&#xff0c;必须先使该纹理问当前的active纹理 glGenTextures( 1, &reflectionTexObj );glBindTexture( GL_TEXTURE_2D, reflectionTexObj );glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );glTexParameteri( GL_TEXTURE_2D, G…