正则表达式

正则表达式

限于喜欢 提交于 2020-02-08 05:17:54
符号 解释 示例 说明 . 匹配任意字符 b.t 可以匹配bat / but / b#t / b1t等 \w 匹配字母/数字/下划线 b\wt 可以匹配bat / b1t / b_t等 但不能匹配b#t \s 匹配空白字符(包括\r、\n、\t等) love\syou 可以匹配love you \d 匹配数字 \d\d 可以匹配01 / 23 / 99等 \b 匹配单词的边界 \bThe\b ^ 匹配字符串的开始 ^The 可以匹配The开头的字符串 $ 匹配字符串的结束 .exe$ 可以匹配.exe结尾的字符串 \W 匹配非字母/数字/下划线 b\Wt 可以匹配b#t / b@t等 但不能匹配but / b1t / b_t等 \S 匹配非空白字符 love\Syou 可以匹配love#you等 但不能匹配love you \D 匹配非数字 \d\D 可以匹配9a / 3# / 0F等 \B 匹配非单词边界 \Bio\B [] 匹配来自字符集的任意单一字符 [aeiou] 可以匹配任一元音字母字符 [^] 匹配不在字符集中的任意单一字符 [^aeiou] 可以匹配任一非元音字母字符 * 匹配0次或多次 \w* + 匹配1次或多次 \w+ ? 匹配0次或1次 \w? {N} 匹配N次 \w{3} {M,} 匹配至少M次 \w{3,} {M,N} 匹配至少M次至多N次 \w{3,6}

用Python写的简单脚本更新本地hosts

亡梦爱人 提交于 2020-02-08 00:37:33
这两天Google墙得严重,于是就产生了做个一键更新hosts的脚本的想法。 由于正在学习Python,理所当然用Python来写这个脚本了。 接触比较多的就是urllib2这个库,习惯性的import进去了。还要import一个re的库,让Python支持正则表达式。关于正则表达式我研究不多,只会点简单的,如果想了解下正则表达式可以上这个网站http://deerchao.net/tutorials/regex/regex.htm。 Python比较简洁,这里就用到了个写入文件的语法。下面贴上代码。 # coding:utf-8 import re import urllib2 r=urllib2.urlopen('http://googless.sinaapp.com').read() link_list = re.findall('1\d+.\d+.\d+.\d+' ,r) newlist = [] def unique(oldlist): for x in oldlist: if x not in newlist: newlist.append(x) return newlist unique(link_list) f = open('/private/etc/hosts','w') for each_link in newlist: f.write(each_link+'

正则表达式 2020.2.7

随声附和 提交于 2020-02-07 23:36:43
正则表达式 *通用的字符串表达框架 *简介表达一组字符串的表达式 *判断某字符串的特征归属 例: 'PY' 'PYY' 'PYYY' 'PYYYY' ...... P后面有无穷多个Y ---->正则表达式:PY+ 例: 'PY'开头 后续存在不多于10个字符 后续字符不能是'P'或'Y' 如: 'PYABC' √ 'PYKXYZ' × 用正则表达式----> PY[^PY]{0,10} 正则表达式的常用操作符 符号  含义 例子 . 表示任何单个字符(换行除外) [] 字符集对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a到z单个字符 [^] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 * 前一个字符0次或无限次拓展 abc*表示ab、abc、abcc、abccc...... + 前一个字符1次或无限次拓展 abc+表示abc、abcc、abccc...... ? 前一个字符0次或一次拓展 abc?表示ab、abc | 左右表达式任意一个 abc|def表示abc、def {m} 拓展前一个字符m次 ab{2}c表示abbc {m,n} 拓展前一个字符m至n次 ab{1,2}表示abc、abbc ^ 匹配字符串开头 ^abc表示abc且在第一个字符串开头 $ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾 () 分组标记

JS高级-4:正则表达式

左心房为你撑大大i 提交于 2020-02-07 21:02:42
正则表达式 js java c# python 学习网站 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp 概念 正则表达式是为了解决字符串操作中一些比较麻烦的场景,比如字符串提取、字符串替换、字符串验证等 常用于:表单验证:是否是一个数字、是一个电话号码、是一个邮箱。。。 字符串替换: 字符串查找 正则表达式其实也是js里面的一个对象 创建一个正则表达式 var reg2=new RegExp("a"); var reg1=/a/; 其中//是标记,a表示要匹配的字符 正则表达式匹配 var reg=/a/; //匹配字符串中的a字符 reg.test("abc"); //正则表达式的test用来检测字符串是否满足正则表达式的要求; //由于"abc"中存在a,所以是符合要求的,所以这段代码的返回值为:true const isTrue = reg.test("coke"); //由于"coke"中不存在a字符,所以不符合条件 -->isTrue:false var reg2=/abc/; reg2.test("adbcd"); //字符串中必然存在"abc"才符合要求,所以这段代码的返回值为false reg2.test("1abc"); //true

正则和相关知识

我与影子孤独终老i 提交于 2020-02-07 15:27:52
认识正则 正则表达式:是由一些字符和特殊符号组成的字符串,用来约束或描述一个有相似特征的字符串的集合。 功能: 正则捕获:按照正则表达式的规则从一个字符串 findall 中找到符合正则表达式格式的字符串 正则匹配:根据正则表达式的规则判断一个字符 match 串是否符合该表达式格式 正则表达式模块 python中通过re模块来使用正则表达式。 re模块介绍: python中的re模块是内置模块,因此可直接通过import关键字导入,通常我们使用该模块中的match()方法判断一个字符串是否符合正则表达式定义的规则,使用findall()方法从指定字符串中找到符合正则表达式规定的字符串 正则步骤 #导入re模块 import re #定义正则表达式 p = re.compile(正则表达式) #通过定义的正则来判断字符串是否匹配该字符串,如果匹配则显示匹配信息,否则显示None m= p.match(字符串) #通过定义的正则表达式从字符串中查找符合规则的字符串并将它们存放在列表中 f = p.findall(字符串) #从指定字符串中查找符合正则的字符串,返回匹配信息(match对象)或None f = p.search(字符串) 4正则中常用方法 (1)compile 作用:用于定义正则表达式 格式: compile(pattern, flags=0) 参数说明: 参数说明:

正则表达式

放肆的年华 提交于 2020-02-07 10:45:42
# 正则表达式: 字符组:[字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中[]表示 [0-9]: 可以匹配0-9这几个数 [a-z]: 可以匹配a-z这26个字母 [A-Za-z1-9]: 匹配字母,数字 元字符: . 匹配除换行符以外的任意字符 \w 匹配字母,数字,下划线(word) \s 匹配任意空白符(space) \d 匹配数字 (digit) \W 匹配非字母,数字,下划线 \S 匹配任意非空白符 \D 匹配非数字 \n 匹配换行符 ^ 匹配字符串的开始 例: ^[a-z] 匹配以字母开头的字符串 $ 匹配字符串的结尾 例: ^[a-z][a-z]$ 匹配以字符串开头,字符串结尾,且中间只有两个字母的字符串 [^a] 除了a之外的都匹配 * 匹配0次或多次 例: \d* 匹配所有数字 + 匹配一次或多次 ? 匹配0次或1次 {n} 重复n次 例:\d{11} 数字重复11次 {n,} 重复n次或多次 {n,m} 重复n次到m次 练习1:匹配身份证号 ^[1-9]\d{14}(\d{2}[0-9x])?$ ^[1-9]\d{16}[0-9x] | [1-9]\d{14} import re # findall 返回所有满足匹配条件的结果, 放在列表里 1 ret = re.findall('[a-z]+', 'ava isj ask') 2

第十节 正则表达式

二次信任 提交于 2020-02-07 09:52:23
第1章 什么是正则表达式 正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法 通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。Linux正则表达式一般以行为单位处理。 简单说 为处理大量文本|字符串而定义的一套规则和方法 以行为单位出来,一次处理一行 正则表达式是一种描述一组字符串的模式,类似数字表达式,通过各种操作符组成更小的表达式 第2章 为何使用正则表达式 linux运维工作,大量过滤日志工作,化繁为简。 简单,高效。 正则表达式高级工具;三剑客都支持 第3章 容易混淆的两个注意事项 正则表达式应用非常广泛,存在于各种语言中,php perl grep sed awk 支持。ls * 通配符 但现在学的是Linux中的正则表达式,最常应用正则表达式的命令是grep(egrep),sed,awk。 正则表达式和通配符有本质区别 正则表达式用来找:【文件】内容,文本,字符串。一般只有三剑客支持 通配符用来找:文件名,普通命令都支持 第4章 正则表达式使用注意事项 linux正则表达式以行为单位处理字符串 便于区别过滤出来的字符串,一定配合grep/egrep命令学习。 注意字符集,exportLC_All=C:无论何时,做何事都要注意字符集 第5章 正则表达式的分类 POSIX规范将正则表达式的分为了两种 基本正则表达式(BRE

正则表达式全集

走远了吗. 提交于 2020-02-07 09:48:28
表达式全集 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“ n ”匹配字符“ n ”。“ \n ”匹配一个换行符。串行“ \\ ”匹配“ \ ”而“ \( ”则匹配“ ( ”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“ \n ”或“ \r ”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“ \n ”或“ \r ”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo*能匹配“ z ”以及“ zoo ”。*等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“ zo+ ”能匹配“ zo ”以及“ zoo ”,但不能匹配“ z ”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“ do(es)? ”可以匹配“ does ”或“ does ”中的“ do ”。?等价于{0,1}。 {n} n是一个非负整数。匹配确定的n次。例如,“ o{2} ”不能匹配“ Bob ”中的“ o ”,但是能匹配“ food ”中的两个o。 {n,} n是一个非负整数。至少匹配n次。例如,“ o{2,} ”不能匹配“ Bob ”中的“ o ”,但能匹配“ foooood ”中的所有o。“ o{1,} ”等价于“ o+

正则表达式

此生再无相见时 提交于 2020-02-07 08:34:15
正则表达式(regular expression) 1.字符 字符 含义 普通字符 占大多数,代表自身 元字符 例如.*等等,代表特殊的含义,要代表自身时要用\转义 2.分隔符 以下分隔符用//表示无具体意义 3.简单字符串 简单字符串 正则表达式 匹配字符串 示例 /ring/ ring ring,spring /or not/ or not or not,poor nothing 4.句点/./ 代表任意一个字符 re 匹配字符串 示例 /.alk/ 任意一个字符后加上alk talk,will talk 5.星号/*/ 星号跟在某个字符(串)(作用于字符串的话要用小括号括起来)后面则,代表该字符(串)可以出现零次或多次. re 匹配字符串 示例 /([^)(]*)/ 括号里面不包含括号的字符串 (this) 6.?与+ 默认搜索模式为贪婪模式,即最大长度匹配. 7.括号/()/ 表示一个子正则表达式,一般用于限制特殊字符的作用范围(也就是说不表示作用范围时,他就是小括号本身), re 匹配字符串 示例 /(12)*/ 出现一次或者零次的12 12,1212 8.方括号/[]/ 代表一个字符类,与方括号内条件匹配的单个字符即视为方括号的整体内容. 1.如果方括号内第一个字符为脱字符^则表示不时方括号里面的字符 2.可以用连字符-确定范围 3.方括号内的元字符失去特殊意义