正则表达式

学习笔记--《MySQL必知必会》--第九章

£可爱£侵袭症+ 提交于 2020-02-13 22:02:56
第九章 用正则表达式进行搜索 正则表达式 :正则表达式是用来匹配文本的特殊的串(字符集合)《正则表达式必知必会》。 MySQL 正则表达式 :MySQL用WHERE子句对正则表达式提供了初步的支持,允许指定正则表达式。MySQL仅支持多数正则表达式实现的一个很小的子集。 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY关键字, 基本字符匹配 (. ^ $): # 除关键字LIKE被REGEXP替代外,这条语句看上去非常像使用LIKE的语句.它告诉MySQL:REGEXP后所跟的东西作为正则表达式(与文字正文1000匹配的一个正则表达式)处理. SELECT column_name FROM table1_name WHERE column_name REGEXP '.000'; # .是正则表达式语言中一个特殊的字符,它表示匹配任意一个字符。 在LIKE和REGEXP之间有一个重要的差别 # 该语句不返回数据 SELECT column_name FROM table1_name WHERE column_name LIKE '1000'; # 该语句返回一条数据 SELECT column_name FROM table1_name WHERE column_name REGEXP '1000'; #

关于正则表达式匹配任意字符(包括换行符)的写法

大兔子大兔子 提交于 2020-02-13 16:32:08
今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符。同时,手册上还有一句话:要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。于是我将正则表达式的匹配规则修改如下: ([.\n]*),当然,如果是在java程序中直接写到话,需要改为([.\\n]*) 结果再次运行程序,发现什么内容也取不到了。我百思不得其解,又将其修改为如下规则: ([.|\n]*) 以及 ([\n.]*) 结果还是不行,什么内容都取不到。看来点符号和换行符卯上劲了~ 然后上网一查,虽然没有查出上述规则到底是什么地方出问题了,但是查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正则表达式匹配规则: ([\s\S]*) 同时,也可以用 “([\d\D]*)”、“([\w\W]*)” 来表示。 本文可以自由转载,转载时请保留全文并注明出处: 转载自仲子说 [ http://www.wangzhongyuan.com/ ] 原文链接:http://www.wangzhongyuan.com/archives/640.html 在文本文件里, 这个表达式可以匹配所有的英文 /[ -

正则表达式tips

五迷三道 提交于 2020-02-13 10:04:23
在大数据时代的如今,在测试过程中会接触到大量的数据,实现在大量数据中快速查找替换目标数据少不了正则表达式的协助,所以今天整理一下常用的正则表达式。 一、组成与用途 正则表达式,是由普通字符(例如a-z)和特殊字符(称为“元字符”)组成。主要可用于进行字符串匹配,实现查找字符串、字符串子串或者对查找字符串进行替换的目的。 二、语法 正则表达式中的字符有普通字符、非打印字符、特殊字符、限定符、定位符等。 这里主要说明一下限定符、定位符。 1、限定符 要求指定字符串出现的次数符合设定的规则。 *:前面的表达式匹配到零次或者多次 例如:规则设置为ok*,ok与okkk +:匹配前面的子表达式一次或多次 例如:规则设置为ok+,o不符合,ok与okkk等符合 ?:匹配一个或零个前面的子表达式,非贪婪 例如:规则设置为go(od)?,go与good均符合 {n}: 匹配n次 例如:o{2},not不符合,但good可以匹配到 {n,}: 匹配n以及n次以上的字符 例如:o{2,} 可以匹配到gooooood中的所有o {n,m}: 表示匹配最少n次,最多m次,设置一个次数范围 例如:o{1,3} 可以匹配到gooooood中的前三个o 2、定位符 ^: 匹配字符串的起始位置, 例如:^test,表示匹配以test开头的字符串,如testxy。 $: 匹配输入字符串的结尾, 例如:test

正则表达式匹配任意字符(包括换行符)的写法

拈花ヽ惹草 提交于 2020-02-13 09:07:36
http://blog.csdn.net/liehuo123/article/details/6068823 [/s/D]* 匹配换行和空格 今天想使用正则表达式来获取一段文本中的任意字符。 于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。 于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“/n”以外的所有字符。同时,手册上还有一句话:要匹配包括 '/n' 在内的任何字符,请使用像 '[./n]' 的模式。 于是我将正则表达式的匹配规则修改如下: ([./n]*),当然,如果是在C#程序中直接写到话,需要改为([.//n]*) 结果再次运行程序,发现什么内容也取不到了。 我百思不得其解,又将其修改为如下规则: ([.|/n]*) 以及 ([/n.]*) 结果还是不行,什么内容都取不到。看来点符号和换行符卯上劲了~ 然后上网一查,虽然没有查出上述规则到底是什么地方出问题了,但是查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正 则表达式匹配规则: ([/s/S]*) 同时,也可以用 “([/d/D]*)”、“([/w/W]*)” 来表示。 来源: https://www.cnblogs.com/lvxiuquan/archive/2012/08/10/2631519.html

转义字符,正则表达式,特殊字符,模式匹配

£可爱£侵袭症+ 提交于 2020-02-13 07:14:42
1. 常见的 转义字符 字母前面加上反斜线 "\" 来表示常见的那些不能显示的ASCII字符.称为转义字符。如 \0, \t, \n 等。 转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表(HT) (跳到下一个TAB位置) 009 \v 垂直制表(VT) 011 \\ 代表一个反斜线字符 ''\' 092 \' 代表一个单引号(撇号)字符 039 \" 代表一个双引号字符 034 \0 空字符(NULL) 000 \ddd 1到3位八进制数所代表的任意字符 三位八进制 \xhh 1到2位十六进制所代表的任意字符 二位十六进制 2. 正则表达式 中的 特殊字符 在表达式中有特殊意义,需要在它前面添加 "\" 才能当作普通文本字符来使用。 使用正则表达式regex匹配特殊字符(2种方法记忆): 方法1:首先加"\"匹配该 特殊字符 本身,然后在 转义字符 (即"\")前加"\" 方法2:在特殊字符前加"\\"(或者使用[]),特别的"\"需要使用"\\\\"来匹配 字符 说明 input regex1 regex2 ^ 匹配输入字符串的

grep,egrep,fgrep字符匹配

蓝咒 提交于 2020-02-13 03:26:10
grep,egrep,fgrep 这三个命令需要使用 正则表达式 grep使用 使用 基本正则表达式 定义的 模式 来 过滤文本 的命令。 grep: -i:不区分 大小写 。 -v:显示 没有匹配 的行。 -o: 仅仅显示匹配 的内容。 –color:显示颜色。 -E:extend,使用 扩展的 正则表达式。 -A#:1,2,3,#: 匹配到的行 以及后#行。 -B#: 匹配到的行 以及前#行。 -C#: 匹配到的行 以及前后#行。 例如 : grep “\<d[a-zA-Z]*\>” file :匹配以 字母d开头的单词 。 egrep:可以使用 扩展正则表达式 ,相当于 grep -E 。 fgrep:fast,快, 不支持 正则表达式, 直接匹配 。 来源: CSDN 作者: zjt597778912 链接: https://blog.csdn.net/zjt597778912/article/details/104228113

一个正则表达式测试(只可输入中文、字母和数字)

时间秒杀一切 提交于 2020-02-13 01:59:57
首先举一个例子: 匹配9-15个由字母/数字组成的字符串的正则表达式: NSString * regex = @"^[A-Za-z0-9]{9,15}$"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; BOOL isMatch = [pred evaluateWithObject:txtfldPhoneNumber.text]; 假如是在OC里用,一定要注意细节。 列出我在项目中用到的代码: NSString *regex = @"[a-zA-Z\u4e00-\u9fa5][a-zA-Z0-9\u4e00-\u9fa5]+"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; if(![pred evaluateWithObject: nickNameTextField.text]) { /* ////此动画为弹出buttonqww UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"昵称只能由中文、字母或数字组成" delegate:self

匹配任意单个字符

China☆狼群 提交于 2020-02-13 01:17:55
正则表达式中.字符相当于DOS的?字符。SQL用户将注意到正则表达式里的.字符相当于SQL中的_(下划线)字符。在绝大多数正则表达式里,.只能匹配除换行符以外的任何单个字符。 字符.(点)匹配特殊字符:.字符在正则表达式里有特殊的含义,如果模式里需要一个. ,就要想办法来告诉正则表达式你需要的是. 字符本身而不是它在正则表达式里的特殊含义。为此,你必须在.的前面加上一个\(反斜杠)字符来对它进行转义。\是一个元字符(metacharacter,表示“这个字符有特殊含义,而不是字符本身含义”)。 如果要所搜\本身,就必须对\字符进行转义,相应的转义序列是两个连续的反斜杠字符\\ 在正则表达式里,有特殊含义的字符序列总是以\字符开头。 来源: https://www.cnblogs.com/ccgjava/p/7215738.html

Python学习笔记九:正则表达式

一世执手 提交于 2020-02-13 01:07:03
一:正则表达式的符号与方法 常用符号: .:匹配任何一个字符,换行符除外(所以,多行字符串中的匹配要特殊处理,见下面实例) *:匹配前一个字符0次或多次 +:匹配前一个字符1次或多次 ?:匹配前一个字符0次或1次 {n,m}:匹配前一个字符n次~m次 ():小括号内容作为结果返回 []:匹配[]内任一元素 .*:贪心匹配,匹配任何一个字符0次或多次 .*?:非贪心匹配 (.*?):把括号内的匹配内容作为结果返回 \w:匹配包括下划线的任何 单词字符(即不是特殊符号的字符,符号字符是!@#?之类) ,相当于[A-Za-z0-9_] \d:匹配任意数字,等价于 [0-9] \W:匹配 非单词字符 。 \D:匹配 非数字 。 ^:模式取非。 常用方法: findall():匹配符合规则的内容,结果以列表形式返回 search():匹配第一个符合规则的内容,并返回一个正则表达式对象 sub():替换符合规则的内容,返回替换后的值 实例: # . 的使用:充当一个占位符,一个.代表一个符号 a="xz123" b=re.findall("x.",a) #第一个参数为查找规则,第二个参数为被查找对象 print b 结果:. 被赋予了具体内容 ['xz'] # * 的使用:代表前一个字符出现0次或多次 a="xyxy123" b=re.findall("x*",a) print b 结果

正则表达式 --- 特殊元字符

别说谁变了你拦得住时间么 提交于 2020-02-12 19:30:58
一、 ^ 以xxx开头 1、以数字开头时 let reg = /^\d/ let box = "6aaaaaaaa" console . log ( reg . test ( box ) ) // 结果为true 2、以非数字开头时 let reg = /^\d/ let box = "aaaaaaaa" console . log ( reg . test ( box ) ) // 结果为false 二、 $ 以xxx结尾 1、以数字结尾时 let reg = /\d$/ let box = "text1" console . log ( reg . test ( box ) ) // 结果为true 2、以非数字结尾时 let reg = /\d$/ let box = "text" console . log ( reg . test ( box ) ) // 结果为false 三、 ^ 和 $ 结合使用时 1、如果都使用,那么要匹配的值必须得是某个规则的才行; 如下代码, \d+ 原本表示只要包含0到9的数字,且有1个或者多个就行,但是前后都加上了 ^ 和 $ ,那么此时就表示只能是数字,所以结果为 false let reg = /^\d+$/ let box = "1text2" console . log ( reg . test ( box ) ) //