模式匹配

SQL的四种匹配模式

久未见 提交于 2020-03-17 15:59:06
原文链接: https://blog.csdn.net/qq_36113598/article/details/79372493 SQL提供了四种匹配模式:% _ [ ] [^ ] 1. % %表示模糊匹配0或多个字符,如以下查询语句: select * from user where name like '%三%'; 这个语句将会把name中带有“三”的信息全部查找出来 select * from user where name like '%三' ; 这个语句将会把name中最右边带有“三”的信息全部查找出来 select * from user where name like '三%' ; 这个语句将会把name中最左边带有“三”的信息全部查找出来 2. _ _表示任意单个字符,如以下语句: select * from user where name like '_三_'; 这个语句会匹配出“二三四” select * from user where name like '__三'; 这个语句会匹配出“一二三” 3. [ ] [ ]表示括号内所列字符中的一个(类似于正则表达式),如以下语句: select * from user where name like '老[大二三]'; 如果都存在的话将找出“老大”、“老二”、“老三” 同时支持缩写0-9、a-z等。 4.[^ ]

sed 命令详解

橙三吉。 提交于 2020-03-14 11:31:03
原文链接 1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 (一) 7. 实例(二) 8 . 脚本 1.简介 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。 2. 定址 定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。 地址是一个数字,则表示行号;是“$"符号,则表示最后一行。例如: sed - n '3p' datafile 只打印第三行 只显示指定行范围的文件内容,例如: # 只查看文件的第100行到第200行 sed -n '100,200p' mysql_slow_query.log 地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。范围可以用数字、正则表达式、或二者的组合表示

.gitignore 模式匹配

梦想的初衷 提交于 2020-03-12 15:48:24
匹配模式前使用 / 表示根目录 匹配模式后使用 / 代表是目录(不是文件) 匹配模式前加 ! 表示取反 * 代表任意个字符 ? 匹配任意一个字符 ** 匹配任意级目录 来源: https://www.cnblogs.com/ceceliahappycoding/p/10889343.html

21. re模块

时光毁灭记忆、已成空白 提交于 2020-03-10 19:30:47
一、正则 1. 字符 元字符 匹配内容 . 匹配出换行外任意字符 \w 匹配字母或数字或下划线 \s 匹配任意空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配指定字符的开始 $ 匹配字符串的结尾 \W 匹配非字母数字下划线 \D 匹配非数字 \S 匹配非空白符 a | b 匹配字符a或字符b () 匹配括号内的表达式,也是一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中的字符其他所有字符 2. 量词 量词 匹配内容 * 重复0或更多次 + 重复1或更多次 ? 重复0或1次 {n} 重复n次 {n, } 重复n或更多次 {n, m} 重复n到m次 3. 运用 import re string_test = "hello" (1) . string_1 = re.findall('.', string_test) print(string_1) >['h', 'e', 'l', 'l', 'o'] (2) ^ string_2 = re.findall('^h', string_test) print(string_2) >['h'] (3) $ string_3 = re.findall('o$', string_test) print(string_3) >['o'] (4) * - 当匹配单个字符的时候

求助!!!BF模式匹配java

孤街醉人 提交于 2020-03-08 18:32:03
不知道哪里不对,结果一直是错的 public class BF { public static int bf_cmp ( String S , String T ) { int m = T . length ( ) ; //T长 int n = S . length ( ) ; //S长 int i , j ; //记录主串下一次比较起始位置 for ( i = 0 ; i < m - n ; i ++ ) { j = 0 ; while ( j < n && T . charAt ( i + j ) == S . charAt ( j ) ) { //查找满足条件的 j ++ ; } if ( j == n ) { return i ; //返回模式在文本中的开始位置 } } return - 1 ; } public static void main ( String [ ] args ) { int pos = 0 ; pos = bf_cmp ( "abcdefgh" , "fgh" ) ; if ( pos != - 1 ) System . out . print ( "T在S中第:" + pos + "个位置" ) ; else System . out . print ( "不匹配" ) ; } } 来源: CSDN 作者: 小杨加油 链接: https:/

Python正则表达式指南

早过忘川 提交于 2020-03-08 14:28:47
  正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。下面,我来介绍一下python中的正则表达式是怎么使用的。  一、元字符 (参见 python 模块 re 文档)   . 匹配任意字符(不包括换行符)   ^ 匹配开始位置,多行模式下匹配每一行的开始   $ 匹配结束位置,多行模式下匹配每一行的结束   * 匹配前一个元字符0到多次   + 匹配前一个元字符1到多次   ? 匹配前一个元字符0到1次   {m,n} 匹配前一个元字符m到n次   \\ 转义字符,跟在其后的字符将失去作为特殊元字符的含义,例如\\.只能匹配.,不能再匹配任意字符   [] 字符集,一个字符的集合,可匹配其中任意一个字符   | 逻辑表达式 或 ,比如 a|b 代表可匹配 a 或者 b   (...) 分组,默认为捕获,即被分组的内容可以被单独取出,默认每个分组有个索引,从 1 开始,按照"("的顺序决定索引值   (?iLmsux) 分组中可以设置模式,iLmsux之中的每个字符代表一个模式,用法参见 模式 I   (?:...)

Linux文件系统及文件处理工具

荒凉一梦 提交于 2020-03-08 09:46:49
1.Linux文件系统基础知识 inode :节点;记录文件的属性,一个文件占用一个inode,同时记录此档案的资料所在的block号码。 block :文件内容存放地,实际记录文件的内容,有时占用多个block。 superblock :记录文件系统的整体信息,包括inode、block总量,使用量,剩余量,以及文件系统格式等相关信息。 2.Linux文件系统删除原理 硬链接 :具有相同INode节点号的文件互为硬链接文件。 删除硬链接文件或者删除源文件任意一个,文件数据实际并未删除。 只有删除源文件以及所对应的所有硬链接文件,文件数据才被删除,同时释放磁盘空间。 硬链接文件是文件的另一个入口。 可以通过设置硬链接文件防止误删。 软链接 : 符号链接 类似于windows上的快捷方式。 软连接文件类似一个文本文件,存放的是源文件的路径。 删除源文件,链接文件依然存在,但是无法指向源文件。 软连接文件和源文件是不同类型的文件,也是不同的文件,inode号也不同。 rm可以直接删除。 目录链接 : 对于目录来说,只能创建软连接 每一个目录下都有硬链接 . … 对于父目录来说,子目录都会有指向父目录的链接 父目录链接数+1 每一个文件链接计数器 : i_count:当前文件被调用的次数 内存引用计数器 i_nlink:链接的数量 硬链接的数量 磁盘引用计数器 文件删除:i

Zabbix实战-简易教程--日志类

心已入冬 提交于 2020-03-04 02:56:47
一、主动模式和被动模式介绍 要监控日志,必须使用主动模式,那么,什么是主动模式?什么是被动模式呢? 1、主动模式和被动模式 主动模式 主动模式通讯过程: ● Agent打开TCP连接(主动检测变成Agent打开) ● Agent向Server请求items检测列表 ● Server返回items列表 ● Agent 处理响应 ● 关闭TCP连接 ● Agent开始收集数据 主动检测提交数据过程 ● Agent建立TCP连接 ● Agent提交items列表收集的数据 ● Server处理数据,并返回响应状态 ● 关闭TCP连接 被动模式 被动模式通信过程 ● Server打开一个TCP连接 ● Server发送请求agent.ping\n ● Agent接收到请求并且响应<HEADER><DATALEN>1 ● Server处理接收到的数据1 ● 关闭TCP连接 not supported items通信过程 ● Server打开一个TCP连接 ● Server发送请求vfs.fs.size[ no]\n ● Agent接收请求并且返回响应数据 <HEADER><DATALEN>ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: [2] No such file or directory ● Server接收并处理数据,

JavaScript中的正则表达式

拜拜、爱过 提交于 2020-03-03 07:49:59
正则表达式可以: •测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证 •替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 •根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 创建正则表达式 var re = new RegExp();//RegExp是一个对象,和Aarray一样 //但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去 re =new RegExp("a");//最简单的正则表达式,将匹配字母a re=new RegExp("a","i");//第二个参数,表示匹配时不分大小写 RegExp构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志.标志可以组合使用 •g (全文查找) •i (忽略大小写) •m (多行查找) var re = new RegExp("a","gi");//匹配所有的a或A 正则表达式还有另一种正则表达式字面量的声明方式

正则表达式

女生的网名这么多〃 提交于 2020-03-03 07:49:16
正则表达式可以: 测试字符串的某个模式。例如:可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 创建正则表达式 var re = new RegExp();//RegExp是一个对象,和Aarray一样 //但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去 re =new RegExp("a");//最简单的正则表达式,将匹配字母a re=new RegExp("a","i");//第二个参数,表示匹配时不分大小写 RegExp构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志.标志可以组合使用 g (全文查找); i (忽略大小写); m(多行查找); var re = new RegExp("a","gi"); //匹配所有的a或A 正则表达式还有另一种正则表达式字面量的声明方式 var