当前位置:   article > 正文

mysql 剔除不可见字符_重拾MySQL之正则表达式

mysql 过滤两侧的不可见字符

一、正则表达式

之前介绍的筛选数据的方法包括匹配、比较和通配符等等,对于基础的数据过滤也基本够用了,但考虑到数据筛选中往往还需要一些更复杂的情况需要正则表达式来实现,比如从文本中提取电话号码,找寻名字中有数字的文本等;正则表达式就是通过将一种数据文本模式与数据库中的文本串进行比较,来匹配文本。需要说明的是,MySQL中可以实现的正则表达式仅仅只占全部的一小部分。

1,基本的正则表达式字符:

REGEXP关键字取代LIKE ,提示MySQL后面跟的东西为正则表达式

(1)"." 表示匹配任意一个字符;

77a4533c075e323591b6c15ffa5bb3a5.png

这个例子中REGEXP 和LIKE 的作用似乎相同,但是两者也是有区别的,不用通配符%的话,如果文本中出现被匹配的文本,LIKE 是不会返回数据的,而REGEXP 则会,可参考这个例子:

e2223475947fbb58541ccfa1fa9d1b8d.png

(2)“|” 表示正则表达式的“OR” 字符;

(3)“[ ]"同|一样,是'or"字符,;

这两者都是表示或的意思,[] 是为了有时候定义OR 语言的查找范围,具体可见下面的例子:

352311bb35f03b1f287bacf8749c59b2.png

14bd83a96eb1a125091b58ef1fb67d31.png

第一个例子表达的实际意思是 prod_name 中有 1、2或者'3 ton '的数据,而第二个例子表达的实际意思是 prod_name 中有'1 ton'\'2ton'\'3ton '的数据

(4) ”^" 字符,表示否定;

在集合的开始处放一个^即表达否定,如[^123]表达出去1、2、3 之外的其他数据。

(5)“-”字符,表示范围;

简单 [0-9] 表示[0123456789],同样的,还有[A-Z]任意字母字符。

(6)转义字符:\\;为了匹配之前介绍的有特殊意义的字符,在MySQL中“\\^"表示匹配有^的数据。

2 字符类:

有一些常用的数据或者字母字符等等,在MySQL中有预定义的字符集,称之为字符类:

[:alnum:] =[a-zA-Z0-0],任意字母和数字;

[:alpha:] =[a-zA-Z] 任意字符;

[:blank:] =[\\t] 任意制表符;

[:cntrl:] ASCII控制数字,ASCII 0到31和127 (?)

[:digit:] =[0-9]任意数字;

[:print:] 任意可打印字符

[:graph:] 任意可打印字符,但不包括空格;

[:lower:] 任意小写字母;

[:punct:] 即不在[:alnum:] 又不在[:cntrl:]中的任意字符;

[:space:] =[\\f\\n\\r\\t\\v] 任意空白符 包括空格在内

[:upper:] 任意大写字母;

[:xdigit:] 任意十六进制数字;

3重复元字符

如果不仅需要匹配正确的内容,还需要匹配确定的数量,就需要正则表达式重复元字符:

*     0或者任意个匹配;

+    1或者多个匹配 ;

?   0或者1个匹配;

{n}   指定数目(n)个匹配;

{n,}   不少于n个匹配;

{n,m} 匹配数目范围的匹配,n-m 个匹配;

fbc138e73ef285b454498202f3a9a117.png

这里的sticks?中 ?表示有0或者1个s,即匹配stick或sticks,\\(和\\)是转义字符,分别匹配( 和)。

c6e4fc4aa27d2eb35ffa530a104caaa0.png

这个中的’[:digit:]{4}'表示匹配四个连在一起的任意数字,即任意四位数字。

4 定位符

^    表示文本的开始;

$    表示文本的结尾;

[[:<:>

[[:>:]]    表示词的结尾。

1ddd9275ac4cc88f34578cf983ec7300.png

44332771366300e8a06489162cad80d7.png

后面两个词的开始和结尾暂时没看到网上的笔记中有提到,也没想到什么具体的例子来编代码试试,等后面有看到或者想到再说。

REGEXP+正则表达式和LIKE +通配符在很多地方的作用是同样的,但是在一些复杂的情况下,也会有只能用正则表达式来实现的例子。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/835866
推荐阅读
相关标签
  

闽ICP备14008679号