正则

everything搜索工具小技巧

三世轮回 提交于 2020-03-09 08:29:27
everything 工具平时用的也不多,但是有时候使用的时候却总是找不着北。 everything 支持五种搜索方式,如下图: 正则匹配搜索: 当你选择正则匹配之后,你可能需要匹配某个文件夹里面的某个文件名字,或某个文件名里面的部分字符(记不清楚文件名字),甚至某个文件里面的所有一类文件 正则语法: a|b a或b gr(a|e)y 匹配 gray 或 grey . 任一字符 [abc] 任一字符:a或b或c [^abc] 任一字符,但不包括a、b、c [a-z] 从a到z之间的任一字符 [a-zA-Z]从a到z,及从A到Z之间的任一字符 ^ 文件名开始 $ 文件名结束 * 前一项内容重复0或多次 ? 前一项内容重复0或1次 + 前一项内容重复1或多次 {x} 前一项内容重复x次 {x,} 前一项内容重复x或更多次 {x,y} 前一项内容重复次数介于x和y之间 everything 正则中文件夹用反斜杠而不是斜杠 // 搜fltdomestic111027文件夹下面的php fltdomestic111027\\.+\.php 查找空文件夹: empty: 查找重复文件: dupe: 来源: https://www.cnblogs.com/ayseeing/p/3819867.html

python-25-初识正则与re模块

戏子无情 提交于 2020-03-08 19:22:36
前言 什么是正则呢?既是我们可以定义一些规则,从而对字符串进行过滤。 python语言当中用re模块来操作正则,是匹配字符串的一种规则。 一、初识正则规则 1、字符类: 2、数量限定符: 3、位置限定符: 4、特殊符号 5、其他普通字符集及其替换: 二、python中操作re python语言当中用re模块来操作正则,必须掌握方法:①findall ②search ③match 1、 findall :返回所有满足匹配条件的结果,放在列表里 # 1、findall:返回所有满足匹配条件的结果,放在列表里 import re ret = re.findall('[a-z|A-Z]+', 'Java Python C C# Go') print(ret) 2、 search :只要找到符合规则的第一个就直接返回 ①需要调用group()才能拿到结果。 ②没有找到方方方None,调用group会报错 import re ret = re.search('Q', 'Java Python C C# Go') print(ret) # 拿到的是一个对象 print(ret.group()) # 这样写匹配不到字符,会报错 一般是这样用解决会报错,if ret: import re ret = re.search('Q', 'Java Python C C# Go') # print(ret)

linux运维、架构之路-正则表达式

南楼画角 提交于 2020-03-08 07:56:45
一、通配符的含义 符号 参数说明 其他说明 | 管道 把前一个命令结果通过管道传递给后面一个命令 ; 命令的分隔符 ll /oldboy/;cat oldboy.tx . 表示当前目录 * 匹配文本或字符串 ls *.txt,ls *.log / 根或路径的分隔符 && 命令分隔 表示并且,前一个执行成功才会执行后面的 $ 取变量的值 echo $PATH {} 配合echo 打印序列 echo {1..6} 通配符中以* 和{} 最为常用 1、举例说明 ①查找/oldboy下所有.txt文件 [root@oldboyedu37 oldboy]# find /oldboy -type f -name "*.txt" /oldboy/abc.txt /oldboy/oldboy.txt /oldboy/a.txt ②在/oldboy目录下批量创建10个以文件,例如:oldboy1-oldboy10.txt [root@oldboyedu37 oldboy]# touch oldboy{1..10}.txt [root@oldboyedu37 oldboy]# ls -lrt -rw-r--r-- 1 root root 0 Jun 5 17:58 oldboy9.txt -rw-r--r-- 1 root root 0 Jun 5 17:58 oldboy8.txt -rw-r--r

正则---让人喜欢让人忧(4)

醉酒当歌 提交于 2020-03-08 03:37:53
正则表达式--------匹配规则   字符簇:要判断输入的电话号码、地址、EMAIL地址、信用卡号码等是否有效,用普通的基于字面的字符是不够的。         [ AaEeIiOoUu ] 匹配所有的元音字符           [ a - z ] //匹配所有的小写字母      [A-Z] //匹配所有的大写字母      [a-zA-Z] //匹配所有的字母      [0-9] //匹配所有的数字      [0-9\.\-] //匹配所有的数字,句号和减号      [ \f\r\t\n] //匹配所有的白字符      ^[a-zA-Z0-9_]+$ // 所有包含一个以上的字母、数字或下划线的字符串      ^[1-9][0-9]*$ // 所有的正整数      ^\-?[0-9]+$ // 所有的整数 包含0      ^\-?[0-9]+\.?[0-9]*$ // 所有的浮点数 来源: https://www.cnblogs.com/baota/p/7437494.html

正则获取下厨房首页所有图片数据 首次使用sub方法

蹲街弑〆低调 提交于 2020-03-06 04:18:44
文章目录 1. 目标网址 2. 源码参考 1. 目标网址 http://www.xiachufang.com/ 2. 源码参考 # @Time : 2020/3/5 16:04 # @Author : GKL # FileName : spider.py # Software : PyCharm import re import requests class Spider ( object ) : def __init__ ( self ) : self . url = 'http://www.xiachufang.com/' self . headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' } def get_data ( self ) : """ 获取网页源码以及首页图片下载 :return: """ response = requests . get ( self . url , headers = self . headers ) . text # 正则匹配两组数据 data_list1 = re . findall ( r 'src="(.

Python爬虫连载12-爬虫正则表示式、BeautifulSoup初步

柔情痞子 提交于 2020-03-06 02:03:01
一、正则常用的方法 1.match:从开始位置开始查找,一次匹配 2.sear​ch:从任何位置查找,一次匹配 3.findall​:全部匹配,返回列表 4.finditer​:全部匹配,返回迭代器 5.​split:分割字符串,返回列表 ​6.sub:替换 7.匹配中文 中文unicode编码[u4e00-u9fa5] 8.贪婪算法和非贪婪算法 ​贪婪模式:在整个表达式匹配成功的前提下,尽可能的多的匹配 ​非贪婪模式:在整个表达式匹配成功的前提下,尽可能的少的匹配 python中默认时贪婪模式 import re ​ s = r"([a-z]+)( [a-z]+)" pattern = re.compile(s,re.I) ​ m = pattern.match("Hello world wide web") #group(0)表示返回匹配成功的整个字串 s = m.group(0) print(s) #返回匹配成功的整个子串的跨度 a = m.span(0) print(a) #group(1)表示返回的第一个分组匹配成功的字串 s = m.group(1) print(s) #span(1)返回匹配成功的第一个子串的跨度 a = m.span(1) print(a) #groups()返回的是匹配的所有分组子串都输出出来,不包含整个匹配的子串 b = m.groups()

正则

点点圈 提交于 2020-03-05 23:21:36
匹配括号不包活小括号() contacts = re . findall ( r '(?<=\()[^\(\)]*(?=\))' , xinxi , re . I ) 匹配邮箱 mail_pattern = re . compile ( r '(?<=[\s::\<\(\>])[0-9a-zA-Z_\.\*-]{1,50}@[0-9a-zA-Z-\.]{1,50}\.[a-zA-Z0-9]{1,10}' , re . I ) 来源: CSDN 作者: 进击的丑胖 链接: https://blog.csdn.net/wlddn/article/details/104679976

从零开始学正则(三)

和自甴很熟 提交于 2020-03-05 17:28:31
壹 ❀ 引 我在 从零开始学正则(二) 这篇文章中介绍了正则位置的概念,以及匹配位置常用的六个锚,位置相关的知识虽然不多,不过理解起来还挺费劲。在文章结尾留下了两个问题,一问写一个正则将"12345678"变成千位分隔符表示法 "12,345,678";二问验证密码长度在6-12位之间,且至少包含数字,小写字母与大写字母其中两种。 我们先来分析第一个问题,所谓 千位分隔符其实就是从右往左每隔三位数加进一个逗号。 有个问题,我们理解的正则匹配都是从左往右,怎么反过来?这里就可以 使用 $ 匹配尾部,表示从尾部开始匹配,改变匹配方向。 从右往左,逗号都在 3n(n>=1,使用量词+表示)个数字前面 ,很明显这是要匹配位置,这里可以使用 (?=p) 正向先行断言 解决,所以正则是这样: var str = '12345678'; var regex = /(?=(\d{3})+$)/g; var result = str.replace(regex, ','); //12,345,678 怎么理解这个正则呢,(\d{3})+$ 是一个匹配条件,也就是找 (\d{3})+$ 前面的位置,其中 (\d{3}) 是一个组,这个组会出现1次或更多次,所以后面跟了+,又因为要从尾部开始匹配,所以还有个$,不难吧? 看着貌似没问题,但如果我们要将123456789改为千位分隔符就出现问题了: var

ES6 高阶之模仿vue

ぃ、小莉子 提交于 2020-03-05 06:32:36
vue的简单使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> {{message}} <input v-model="modelData" />{{modelData}} </div> <script> /* 1.引入cdn 2.el是挂载点,就是所有vue指令、表达式都是需要在挂载点中使用 3.{{}} -> 表达式 4.v-model -> 指令,双向绑定; 问: vue的表达式是如何实现的呢? 你问过vue的双向绑定,如何实现的呢? */ let vm = new Vue({ el:"#app", data:{ message:"测试数据", modelData:"双绑数据" } }); </script> </body> </html> 模拟vue表达式的实现 /* 表达式的实现: 一、初次渲染 1

正则表达式

大兔子大兔子 提交于 2020-03-04 15:33:14
~~~~~基本方法: 1.test 正则.test(字符串)//判断字符串是否符合正则,符合返回true 否则返回false 2.search() 字符串.search(正则) 在字符串中搜索符合正则的,有的话返回符合的位置,否则返回-1 3.match() 字符串.match(正则) 在字符串中搜索符合正则的内容,搜索成功返回内容(以数组形式),否则返回null 4.replace() 字符串.replace(正则,替换的字符串) 查询符合正则的字符串,查询成功就替换成对应的字符串,返回替换后的内容 ~~~~~常见用某些单词表示一组: \s空格 \S非空格 \d数字 \D非数字 \w字符(字母 数字 下划线) \W非字符 ~~~~~常见的特殊字符的表示: g全局查找 i忽略大小写 \转义 ^字符串的开始位置 $字符串的结束位置 *任意次数 +大于1次 ?0次或者1次 {n}匹配n次 {n,}匹配大于n次 {n,m}匹配大于n次小于m次 |或 [a-b]a到b的范围 [abc]a,b,c中的任意一个 [^abc]除了a,b,c中的任意一个 [^a-z]除了a到z之间的任意一个 (pattern) 匹配 pattern 并捕获该匹配的子表达式。可以使用 $0...$9 属性从结果“匹配”集合中检索捕获的匹配。若要匹配括号字符 ( ),请使用“\(”或者“\)”。 (?:pattern