当前位置: 首页 > news >正文

SQL-REGEX-常见正则表达式的使用

SQL-REGEX-常见正则表达式的使用

在SQL中,正则表达式(Regex)的使用可以帮助进行更灵活和精确的模式匹配和数据筛选。不同的数据库管理系统对于正则表达式的支持略有差异,但大体都是相似的。
在这里插入图片描述

Tips:

模式描述匹配内容
*Zero or more instances of string preceding it匹配之前字符串的零个或多个实例
+One or more instances of strings preceding it匹配之前字符串的一个或多个实例
.Any single character匹配任何单个字符
?Match zero or one instances of the strings preceding it匹配之前字符串的零个或一个实例
^Beginning of string匹配字符串的开头
$End of string匹配字符串的结尾
[abc]Any character listed between the square brackets匹配方括号内列出的任何字符
[^abc]Any character not listed between the square brackets匹配方括号内未列出的任何字符
[A-Z]match any upper case letter匹配任何大写字母
[a-z]match any lower case letter匹配任何小写字母
[0-9]match any digit from 0 through to 9匹配从 ‘0’ 到 ‘9’ 的任何数字
[[:<:]]matches the beginning of words匹配单词的开头
[[:>:]]matches the end of words匹配单词的结尾
[:class:]matches a character class匹配字符类,例如 [:alpha:] 匹配字母,[:space:] 匹配空白,[:punct:] 匹配标点符号,[:upper:] 匹配大写字母
p1|p2|p3Alternation; matches any of the patterns p1, p2, or p3匹配模式 p1、p2 或 p3 中的任何一个
{n}n instances of preceding element匹配前一个元素的 n 次实例
{m,n}m through n instances of preceding element匹配前一个元素的至少 m 次至多 n 次实例

在这里插入图片描述

Eg:

  1. * (零个或多个实例)
    • 模式: a*
      • 匹配: ``, a, aa, aaa
    • 模式: 12*
      • 匹配: 1, 12, 122, 1222

  1. + (一个或多个实例)
    • 模式: a+
      • 匹配: a, aa, aaa(但不匹配空字符串)
    • 模式: 12+
      • 匹配: 12, 122, 1222(至少包含一个’1’后跟至少一个’2’)

  1. . (任何单个字符)
    • 模式: a.b
      • 匹配: acb, a@b, a1b(其中 . 可以匹配任何字符)
    • 模式: ...
      • 匹配: 123, abc, @#$(任意三个字符的组合)

  1. ? (零个或一个实例)
    • 模式: colou?r
      • 匹配: color, colour(‘u’ 可选)
    • 模式: 10?
      • 匹配: 1, 10(‘0’ 可选)

  1. ^ (字符串的开头)
    • 模式: ^abc
      • 匹配: abc, abcdef(只有在字符串开头是’abc’时匹配)
    • 模式: ^[A-Z]
      • 匹配: A, B, C(只有在字符串开头是大写字母时匹配)

在这里插入图片描述
在这里插入图片描述


  1. $ (字符串的结尾)
    • 模式: xyz$
      • 匹配: xyz, abcxyz(只有在字符串结尾是’xyz’时匹配)
    • 模式: [0-9]$
      • 匹配: 1, 2, 9(只有在字符串结尾是数字时匹配)

在这里插入图片描述

在这里插入图片描述

  1. [abc] (方括号内列出的任何字符)
    • 模式: [aeiou]
      • 匹配: a, e, i, o, u(匹配任何元音字母)
    • 模式: [0-5]
      • 匹配: 0, 1, 2, 3, 4, 5(匹配 0 到 5 的任何数字)

  1. [^abc] (方括号内未列出的任何字符)
    • 模式: [^0-9]
      • 匹配: a, A, @(匹配除了数字以外的任何字符)
    • 模式: [^aeiou]
      • 匹配: b, c, d(匹配除了元音字母以外的任何字母)

  1. [A-Z] (任何大写字母)
    • 模式: [A-F]
      • 匹配: A, B, C, D, E, F(匹配从’A’到’F’的任何大写字母)
    • 模式: [M-Z]
      • 匹配: M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z(匹配从’M’到’Z’的任何大写字母)

  1. [a-z] (任何小写字母)
    • 模式: [a-h]
      • 匹配: a, b, c, d, e, f, g, h(匹配从’a’到’h’的任何小写字母)
    • 模式: [p-z]
      • 匹配: p, q, r, s, t, u, v, w, x, y, z(匹配从’p’到’z’的任何小写字母)

  1. [0-9] (任何数字)
    • 模式: [1-5]
      • 匹配: 1, 2, 3, 4, 5(匹配从’1’到’5’的任何数字)
    • 模式: [7-9]
      • 匹配: 7, 8, 9(匹配从’7’到’9’的任何数字)

  1. [[:<:]] (单词的开头)
    • 模式: [[:<:]]foo
      • 匹配: foobar, foo123(匹配以’foo’开头的单词)
    • 模式: [[:<:]]bar
      • 匹配: bar, barista(匹配以’bar’开头的单词)

  1. [[:>:]] (单词的结尾)
    • 模式: foo[[:>:]]
      • 匹配: endfoo, foo(匹配以’foo’结尾的单词)
    • 模式: bar[[:>:]]
      • 匹配: bar, barista(匹配以’bar’结尾的单词)

  1. [:class:] (字符类)
    • 模式: [[:digit:]]
      • 匹配: 0, 1, 2, …, 9(匹配任何数字)
    • 模式: [[:alpha:]]
      • 匹配: a, B, C, …, Z(匹配任何字母)

  1. p1|p2|p3 (选择)
    • 模式: cat|dog
      • 匹配: cat, dog(匹配’cat’或’dog’)
    • 模式: yes|no|maybe
      • 匹配: yes, no, maybe(匹配’yes’、‘no’或’maybe’)

  1. {n} (前一个元素的 n 次实例)
    • 模式: a{3}
      • 匹配: aaa(匹配三个连续的’a’)
    • 模式: [0-9]{2}
      • 匹配: 12, 34, 56(匹配两位数的数字)

  1. {m,n} (前一个元素的 m 到 n 次实例)
    • 模式: x{2,4}
      • 匹配: xx, xxx, xxxx(匹配两到四个连续的’x’)
    • 模式: [A-Za-z]{5,10}
      • 匹配: abcdef, AbCdEfG, xyzWXYZ123(匹配包含 5 到 10 个字母的字符串)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python黑马笔记
  • Android C++系列:Linux信号(三)
  • TCP客户端connect断线重连
  • macOS 10.15中屏蔽Microsoft Edge浏览器的更新提示
  • C# 匿名函数与Lambda表达式
  • GitHub 详解教程
  • 密码错误springboot也正常启动了
  • 基于重要抽样的主动学习不平衡分类方法ALIS
  • EXCEL 排名(RANK,COUNTIFS)
  • 【React】箭头函数:现代 JavaScript 的高效编程方式
  • AI数字人+城市交通大数据可视化平台,让交通管理与服务更简便、更智能
  • WebKit引擎:打造无缝响应式设计
  • Python的人脸识别程序
  • Go实用技巧
  • 微服务实战系列之玩转Docker(五)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • bootstrap创建登录注册页面
  • conda常用的命令
  • golang中接口赋值与方法集
  • HTTP中的ETag在移动客户端的应用
  • KMP算法及优化
  • Redis 懒删除(lazy free)简史
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 构造函数(constructor)与原型链(prototype)关系
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 简单基于spring的redis配置(单机和集群模式)
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 学习Vue.js的五个小例子
  • 用 Swift 编写面向协议的视图
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Z2294. 打印树的直径
  • (19)夹钳(用于送货)
  • (4)logging(日志模块)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (web自动化测试+python)1
  • (办公)springboot配置aop处理请求.
  • (黑马C++)L06 重载与继承
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (六)c52学习之旅-独立按键
  • (转)C#调用WebService 基础
  • (转)memcache、redis缓存
  • (转)重识new
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Framework .NET Core与 .NET 的区别
  • .net反编译工具
  • .NET和.COM和.CN域名区别
  • @Transactional 参数详解
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [Algorithm][综合训练][kotori和气球][体操队形][二叉树中的最大路径和]详细讲解
  • [ANT] 项目中应用ANT