Oracle正则表达式函数 1、正则表达式中的元字符 元字符 意思 例子 / 说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配) /n 匹配换行符 // 匹配 / /( 匹配 ( /) 匹配 ) ^ 匹配字符串的开头位置 如果A是字符串的第一个字符,^A
Oracle正则表达式函数
1、正则表达式中的元字符
元字符 |
意思 |
例子 |
/ |
说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配) | /n 匹配换行符 // 匹配 / /( 匹配 ( /) 匹配 ) |
^ | 匹配字符串的开头位置 | 如果A是字符串的第一个字符,^A 匹配 A |
$ |
匹配字符串的末尾位置 | 如果B是字符串的最后一个字符,$B 匹配 B |
* |
匹配前面的字符0次或多次 | ba*rk可以匹配 brk、bark、baark等等 |
+ | 匹配前面的字符1次或多次 | ba+rk可以匹配 bark、baark等等,但是不能匹配brk,也就是说,最少有以一次。 |
? | 匹配前面的字符0次或1次 | ba?rk可以匹配 bark、brk等等,但是不能匹配baark。 |
{n} | 匹配前面的字符恰好是n次,其中n是整数 | hob{2}it可以匹配hobbit |
{n,m} | 匹配前面的字符至少是n次,最多是m次,其中n,m都是整数 | hob{2,3}it可以匹配hobbit或者hobbbit |
. | 匹配除null以外的任意单个字符 | hob.it中的.可以是任意的单个字符,如:hobsit等等 |
(pattern) | 括号中pattern是一个子正则表达式,匹配指定pattern模式的一个子表达式。 | 如:aaa(x|y)可以匹配aaax或者aaay。 |
x|y | 匹配“或” | x|y可以匹配x或者y |
[abc] | 可以匹配abc中的任何单个字符 | hello[abc]可以匹配helloa,hellob,helloc |
[a-z] | 可以匹配指定范围内的任何单个字符 | hell[a-z]可以匹配hello或者hellz |
[::] | 指定一个字符类,可以匹配该类中的任何字符 | [:alphanum:]可以匹配字符0-9、A-Z、a-z [:alpha:]可以匹配字符A-Z、a-z [:blank:]可以匹配空格或tab键 [:digit:]可以匹配数字0-9 [:graph:]可以匹配非空字符 [:lower:]可以匹配小写字母a-z [:print:]与[:graph:]类似,不同之处在于[:print:]包括空格字符 [:punct:]可以匹配标点符号.,""等等 [:space:]可以匹配所有的空字符 [:upper:]可以匹配大写字母A-Z [:xdigit:]可以匹配十六进制数字0-9、A-F、a-f |
/n | 这是对前一次匹配命中的一个后引用,其中n是一个正整数 | (.)/1可以匹配两个连续相同的非空字符。(.)可以匹配除null以外的任何单个字符,而/1则重复上一次匹配的内容,即再次匹配相同的字符,因此可以匹配两个连续相同的非空字符 |
2、REGEXP_LIKE(x,pattern[,match_option])用于在x中查找正则表达式pattern,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option的取值如下:
‘c’ 说明在进行匹配时区分大小写(缺省值);
'i' 说明在进行匹配时不区分大小写;
'n' 允许使用可以匹配任意字符的操作符;
'm' 将x作为一个包含多行的字符串。
sql 代码
- DECLARE
- V_FIRST_NAME VARCHAR2(50);
- V_DOB DATE ;
- BEGIN
- --返回1965-1968你出生的FIRST_NAME以‘J’开头的消费者
- SELECT FIRST_NAME,DOB INTO V_FIRST_NAME,V_DOB
- FROM CUSTOMERS
- WHERE REGEXP_LIKE(TO_CHAR(DOB,'YYYY'),'^196[5-8]$') AND REGEXP_LIKE(FIRST_NAME,'^J');
- DBMS_OUTPUT.PUT_LINE(V_FIRST_NAME);
- END ;
3、REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[,
match_option]]]])用于在x中查找pattern。返回pattern在x中出现的位置。匹配位置从1开始。可以参考字符串函数
INSTR(),参数相关:
'start' 开始查找的位置;
'occurrence' 说明应该返回第几次出现pattern的位置;
'eturn_option' 说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后的字符的位置;
'match_option' 修改默认的匹配设置。
sql 代码
- DECLARE
- V_RESULT INTEGER ;
- BEGIN
- --返回17,找出l开头的 后跟4个任意字母的单词在第一个参数中第一次出现的位置,这里是light中l的位置
- SELECT REGEXP_INSTR('But, soft! What light through yonder window breaks?','l[[:alpha:]] {4}',1,1,0) INTO V_RESULT
- FROM DUAL;
- DBMS_OUTPUT.PUT_LINE(V_RESULT);
- --返回22,找出l开头的 后跟4个任意字母的单词在第一个参数中第一次出现的位置,这里是light中t的位置+1
- SELECT REGEXP_INSTR('But, soft! What light through yonder window breaks?','l[[:alpha:]] {4}',1,1,1) INTO V_RESULT
- FROM DUAL;
- DBMS_OUTPUT.PUT_LINE(V_RESULT);
- END ;
4、REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[,
match_option]]]])用于在x中查找pattern,并将其替换为replae_string。可以参考字符串函数
REPLACE(),参数同REGEXP_INSTR函数,参考第3
sql 代码
- DECLARE
- V_RESULT VARCHAR2(255);
- BEGIN
- --返回But, soft! What XXX through yonder window breaks? 用‘XXX’代替‘light’
- SELECT REGEXP_REPLACE('But, soft! What light through yonder window breaks?','l[[:alpha:]] {4}','XXX') INTO V_RESULT
- FROM DUAL;
- DBMS_OUTPUT.PUT_LINE(V_RESULT);
-
END
;
5、REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])用于在x中查找pattern并返回。可以参考字符串函数 SUBSTR(),参数同REGEXP_INSTR函数,参考第3
sql 代码
- DECLARE
- V_RESULT VARCHAR2(255);
- BEGIN
- --返回‘light’
- SELECT REGEXP_SUBSTR('But, soft! What light through yonder window breaks?','l[[:alpha:]] {4}') INTO V_RESULT
- FROM DUAL;
- DBMS_OUTPUT.PUT_LINE(V_RESULT);
- END ;

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

MySQL适合小型和大型企业。1)小型企业可使用MySQL进行基本数据管理,如存储客户信息。2)大型企业可利用MySQL处理海量数据和复杂业务逻辑,优化查询性能和事务处理。

InnoDB通过Next-KeyLocking机制有效防止幻读。1)Next-KeyLocking结合行锁和间隙锁,锁定记录及其间隙,防止新记录插入。2)在实际应用中,通过优化查询和调整隔离级别,可以减少锁竞争,提高并发性能。

MySQL不是一门编程语言,但其查询语言SQL具备编程语言的特性:1.SQL支持条件判断、循环和变量操作;2.通过存储过程、触发器和函数,用户可以在数据库中执行复杂逻辑操作。

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL是一个开源的关系型数据库管理系统,适用于数据存储、管理、查询和安全。1.它支持多种操作系统,广泛应用于Web应用等领域。2.通过客户端-服务器架构和不同存储引擎,MySQL高效处理数据。3.基本用法包括创建数据库和表,插入、查询和更新数据。4.高级用法涉及复杂查询和存储过程。5.常见错误可通过EXPLAIN语句调试。6.性能优化包括合理使用索引和优化查询语句。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

InnoDB的锁机制包括共享锁、排他锁、意向锁、记录锁、间隙锁和下一个键锁。1.共享锁允许事务读取数据而不阻止其他事务读取。2.排他锁阻止其他事务读取和修改数据。3.意向锁优化锁效率。4.记录锁锁定索引记录。5.间隙锁锁定索引记录间隙。6.下一个键锁是记录锁和间隙锁的组合,确保数据一致性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版
好用的JavaScript开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver Mac版
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。