MySQL正则查询
创始人
2024-11-13 17:35:23

模式 描述

^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^ 也匹配’\n’ 或’\r’ 之后的位置。

$ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$ 也匹配’\n’ 或’\r’ 之前的位置。

. 匹配除"\n" 之外的任何单个字符。要匹配包括’\n’ 在内的任何字符,请使用象’[.\n]’ 的模式。

[…] 字符集合。匹配所包含的任意一个字符。例如,’[abc]’ 可以匹配"plain" 中的’a’。

[^…] 负值字符集合。匹配未包含的任意字符。例如,’[^abc]’ 可以匹配"plain" 中的’p’。

p1|p2|p3 匹配p1 或p2 或p3。例如,’z|food’ 能匹配"z" 或"food"。’(z|f)ood’ 则匹配"zood" 或"food"。

  •        匹配前面的子表达式零次或多次。例如,zo* 能匹配"z" 以及"zoo"。* 等价于{0,}。  
  •        匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配"zo" 以及"zoo",但不能匹配"z"。+ 等价于{1,}。  

{n} n是一个非负整数。匹配确定的n 次。例如,’o{2}’ 不能匹配"Bob" 中的’o’,但是能匹配"food" 中的两个o。

{n,m} m和n 均为非负整数,其中n <=m。最少匹配n 次且最多匹配m 次。

实例

–查找name字段中以’st’为开头的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘^st’;  

–查找name字段中以’ok’为结尾的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘ok$’;  

–查找name字段中包含’mar’字符串的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘mar’;  

–查找name字段中以数字开头字符串结尾的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘^[0-9]’;  

–查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:

mysql> SELECT name FROM test WHEREname REGEXP ‘^[aeiou]|ok$’;  

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...