mysql 正则表达式查询含有非数字和字符的记录

比如我们有一张school表,里面有一个字段county_name,现在我们要查询county_name字段中包含a-w字母和数字以外字符的记录,那么sql该如何写呢?请看下面的写法:

select * from info where name regexp '[^a-w0-9]';

mysql中正则表达式使用regexp关键字,[^a-w0-9]表示匹配除了a-w字母和数字以外的字符。

下面向大家介绍mysql正则表达式的其他使用实例:

匹配名称含有1000的所有行

SELECT * FROM a1 WHERE name regexp '1000'

匹配以000结尾的所有行,(.正则中表示:匹配任意一个字符)

SELECT * FROM a1 WHERE name regexp '.000'

Mysql正则大小写都会匹配,为区分大小写可使用binary关键字,如:

SELECT * FROM a1 WHERE name LIKE binary '%J%'  #使用LIKE+通配符匹配大写J
SELECT * FROM a1 WHERE name regexp binary 'j'  #使用正则匹配小写j

|为正则表达式的OR操作符,表示匹配其中之一

SELECT * FROM a1 WHERE name regexp binary 'a|j|G'

匹配特定字符,使用[]括起来的字符,将会匹配其中任意单个字符。

SELECT * FROM a1 WHERE name regexp '[12]st'

以上'[12]st'正则表达式,[12]定义一组字符,它的意思是匹配1或2

^ 匹配字符开始的部分

select * from info where name regexp '^L'; //从info表name字段中查询以L开头的记录 

$ 匹配字符结束的部分

select * from info where name regexp 'c$'; //从info表name字段中查询以c结尾的记录 

. 匹配字符串中的任意一个字符,包括回车和换行

select * from info where name regexp '^L..y$'; //从info表name字段中查询以L开头y结尾中间有两个任意字符的记录 

[字符集合]匹配字符集合中的任意字符

select * from info where name regexp '[ceo]'; //从info表name字段中查询包含c、e、o三个字母中任意一个的记录 

[^字符集合]匹配除了字符集合外的任意字符

select * from info where name regexp '[^a-w0-9]'; //从info表name字段中查询包含a-w字母和数字以外字符的记录 

s1|s2|s3 匹配s1s2s3中的任意一个

select * from info where name regexp 'ic'; //从info表name字段中查询包含'ic'的记录

* 代表多个该字符前的字符,包括0个或1个

select * from info where name regexp 'a*c'; 从info表name字段中查询c之前出现过a的记录 

+ 代表多个该字符前的字符,包括1个

select * from info where name regexp 'a+c';//从info表name字段中查询c之前出现过a的记录 

字符串{N} 字符串出现N次

select * from info where name regexp 'a{3}'; //从info表name字段中查询出现过a3次的记录

字符串{M,N}字符串最少出现M次,最多出现N次

select * from info where name regexp 'ab{1,3}'; //从info表name字段中查询ab出现最少1次最多3次的记录

MYSQL中自带通配符(LIKE关键词),%可以表示任意长度的字符(包括0), -可以表示单个字符

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • SQL Server中利用正则表达式替换字符串的方法

    建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR

  • SqlServer类似正则表达式的字符处理问题

    SQL Serve提供了简单的字符模糊匹配功能,比如:like, patindex,不过对于某些字符处理场景还显得并不足够,日常碰到的几个问题有: 1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个相同字符连续,合并为一个字符 4. 是否为有效IP/身份证号/手机号等  一. 同一个字符/字符串,出现了多少次 同一个字符,将其替换为空串,即可计算 declare @text varchar(1000) declare @str varchar(10) set

  • MySQL 字符串模式匹配 扩展正则表达式模式匹配

    标准的SQL模式匹配 SQL的模式匹配允许你使用"_"匹配任何单个字符,而"%"匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比较操作符. 例如,在表pet中,为了找出以"b"开头的名字: mysql> SELECT * FROM pet WHERE name LIKE "b%"; +--

  • mysql 正则表达式查询含有非数字和字符的记录

    比如我们有一张school表,里面有一个字段county_name,现在我们要查询county_name字段中包含a-w字母和数字以外字符的记录,那么sql该如何写呢?请看下面的写法: select * from info where name regexp '[^a-w0-9]'; mysql中正则表达式使用regexp关键字,[^a-w0-9]表示匹配除了a-w字母和数字以外的字符. 下面向大家介绍mysql正则表达式的其他使用实例: 匹配名称含有1000的所有行 SELECT * FROM

  • 如何通过非数字与字符的方式实现PHP WebShell详解

    前言 本文主要给大家介绍的是关于通过非数字与字符实现PHP WebShell的相关资料,分享出来供大家参考学习,下面来一起看看详细的介绍: 一般来说,我们所写的webshell通常都会包含数字或字母.比如说下面这样: <?php if(!preg_match('/[a-z0-9]/is',$_GET['shell'])){ eval($_GET['shell']); } 但如果你想要绕过WAF的话,你还得使用一些其他的技术来重写你的webshell. 思路 首先我们要明确思路,我的核心思想就是通

  • 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等

    一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数.负数.和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]

  • mysql中如何使用正则表达式查询

    基本形式 属性名 regexp '匹配方式' 正则表达式的模式字符 ^ 匹配字符开始的部分 eg1: 从info表name字段中查询以L开头的记录 select * from info where name regexp '^L'; eg2: 从info表name字段中查询以aaa开头的记录 select * from info where name regexp '^aaa'; $ 匹配字符结束的部分 eg1: 从info表name字段中查询以c结尾的记录 select * from info

  • 常用的正则表达式大全(数字、字符、固定格式)

    相关阅读: IOS开发常用的正则表达式 Java正则表达式过滤出字母.数字和中文 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的. 构造正则表达式的方法和创建数学表达式的方法一样.也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式.

  • MySql中使用正则表达式查询的方法

    正则表达式常用来检索和替换那些符合魔种模式的文本.例如从一个文本文件中提取电话号码,查找一篇文章中重复的单词或者替换用户输入的某些敏感词汇等.Mysql 使用 REGEXP 关键字指定正则表达式的字符匹配模式. 1. 字符 '^' 查询以特定字符或字符串开头的记录 SELECT * FROM user WHERE email REGEXP '^a' 字符 '^' 匹配以特定字符或字符串开头的记录,以上语句查询邮箱以 a 开头的记录 2. 字符 ' 查询以特定字符或字符串结尾的记录 SELECT

  • MySQL正则表达式匹配查询(含实例)

    目录 一.正则表达式介绍 二.使用正则表达式 测试数据 1.基本字符匹配 2.OR匹配 3.模糊匹配 4.匹配范围 5.匹配特殊字符 6. 匹配字符类 7.匹配多个实例 8.定位符 总结 一.正则表达式介绍 ​ 在过滤的时候允许使用匹配.比较和通配符寻找数据.对于基本的过滤,这些可能就足够了.但是随着过滤条件复杂性的增加,where子句本身的复杂性也有必要增加. ​ 这里简单介绍一下使用正则表达式匹配搜索.所有种类的程序设计语言.文本编辑器.操作系统都支持正则表达式.很多程序员都将正则表达式作为

  • C#基于正则表达式删除字符串中数字或非数字的方法

    本文实例讲述了C#基于正则表达式删除字符串中数字或非数字的方法.分享给大家供大家参考,具体如下: /// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.Replace(key, @"\d", ""); } //去掉字符串中的非数字 public static string RemoveNotNumber(string key) { return Regex.Replace

  • 自动检测数字替换非数字的正则表达式

    直接给出代码了: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author&quo

  • 详解MySql基本查询、连接查询、子查询、正则表达查询

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SELECT语句来查询数据的.在这一章中将讲解的内容包括. 1.查询语句的基本语法 2.在单表上查询数据 3.使用聚合函数查询数据 4.多表上联合查询 5.子查询 6.合并查询结果 7.为表和字段取别名 8.使用正则表达式查询 什么是查询? 怎么查的? 数据的准备如下: create table STUD

随机推荐