python正则

python正则

放肆的年华 提交于 2020-02-09 08:27:39
import re # 元字符 . ^ $ * + ? {} [] () | \ # findall() # 简单匹配 # res = re.findall("abc", "abcabcabcaaaddd") # 模糊匹配 # res = re.findall("a.c", "abcadcaabc") # .表示一位占位符 # res = re.findall("^abc", "abcabc") # 从头开始匹配 # res = re.findall("abc$", "abcabcaaabc") # 从尾开始匹配 # res = re.findall("abc*", "ab") # 表示匹配[0,+00) # res = re.findall("abc+", "abccc") # 表示匹配[1,+00) # res = re.findall("abc{2}", "abccc") # 指定次数匹配 # res = re.findall("abc{1,3}", "abccccc") # res = re.findall("abc?", "abcc") # 表示匹配[0,1] # res = re.findall("abc|adc", "abcadc") # 表示俩边或者 # res = re.findall("ab[cde]", "abcabdabe") # 或者其中之一 # res

正则和相关知识

我与影子孤独终老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) 参数说明: 参数说明:

python 基础---正则

陌路散爱 提交于 2020-02-05 13:48:33
在线测试工具 http://tool.chinaz.com/regex/ import rere.findall : def findall(pattern, string, flags=0)re.search : def search(pattern, string, flags=0)re.match : def match(pattern, string, flags=0) flags有很多可选值: re.I(IGNORECASE)忽略大小写,括号内是完整的写法 re.M(MULTILINE)多行模式,改变^和$的行为 re.S(DOTALL)点可以匹配任意字符,包括换行符 re.L(LOCALE)做本地化识别的匹配,表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境,不推荐使用 re.U(UNICODE)使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释 1 # ?在正则三用法: 2 #1.做量词表示零次或者一次 3 #2.放量词后面表示惰性匹配标志 4 #3.在findall里面代表取消分组优先 5 6 # while True: 7 # phone_number = input

Python正则总结

流过昼夜 提交于 2020-02-01 18:25:31
正则基本语法 元字符 元字符 描述 示例 匹配 . 句号匹配任意单个字符除了换行符。 a.c abc adc [ ] 字符种类。匹配方括号内的任意字符。 [Tt]he The the [^ ] 否定的字符种类。匹配除了方括号里的任意字符 [^Tt]he xhe * 匹配*号之前的字符大于等于0次。 abc* ab abccc + 匹配+号之前的字符大于等于1次。 abc+ abc abcc ? 匹配?号之前的字符0或1次. abc? ab abc {n,m} 匹配之前的字符重复n到m次, {n} 重复n次, {n,} 重复n次或更多次 ab{1,2}c abc abbc (xyz) 分组,匹配与 xyz 完全相等的字符串. (abc){2} abcabc | 或运算符,匹配符号前或后的字符. (ab|bc){2} abab bcbc \ 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ | \\abc \abc ^ 从开始行开始匹配. ^abc abc $ 从末端开始匹配. abc$ abc 简写字符集 简写 描述 示例 匹配 \w 匹配所有字母数字,等同于 [a-zA-Z0-9_] a\wc abc aBc \W 匹配所有非字母数字,即符号,等同于: [^\w] a\Wc a.c \d 匹配数字: [0-9] a\dc a2c \D 匹配非数字

计蒜客(七)Python中的正则表达式

社会主义新天地 提交于 2020-01-30 13:33:56
1.什么是正则表达式 正则表达式(regular expression)是一种用于匹配文本形式的强大逻辑表示,在Python中的re模组提供了正则表达式的支持。 正则表达式由一些普通字符和一些元字符(meta characters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊含义。 当正则表达式为一个普通的字符串时,一个正则表达式的匹配行为就是一个普通的字符串查找过程,如正则表达式“testing”中没有包含任何元字符,它可以匹配“testing”和“testing123”等字符串,但因为大小写敏感,它不能匹配“Testing”。其他一些元字符则不会被作为普通字符来处理,它们包括 . ^ $ + ? { [ ] \ | ( ) 。 . 匹配除了换行以外的任何字符 \w 等价于[a-zA-Z0-9_]会匹配单一字母、数字或下划线字符,而\W则会匹配任何非字母、数字和下划线的单一字符 \b 匹配“单一字母、数字或下划线字符”和“任何非字母、数字和下划线的单一字符” \s 等价于 [ \n\r\t\f],会匹配一个空白字符(包括空格、换行、返回、制表符、表格),\s则会匹配所有非空白字符 \t 匹配制表符 \n 匹配换行符 \r 匹配返回符 \d 等价于[0-9]用于匹配十进制表示的数字 ^作为开始标记,$作为结束标记,分别用于标记一个字符串的开始和结束的位置。 \

python——re模块(正则表达)

╄→尐↘猪︶ㄣ 提交于 2020-01-25 23:45:19
python——re模块(正则表达)   两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.csdn.net/songyu0120/article/details/45028401 正则表达式 本身也和python没有什么关系,就是 匹配字符串内容的一种规则 。 官方定义: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 正则 在线测试工具 http://tool.chinaz.com/regex/ 字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。 正则 待匹配字符 匹配 结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 [0123456789] a False 由于字符组中没有"a"字符,所以不能匹配 [0-9] 7 True 也可以用-表示范围,[0-9]就和

正则表达式之基础知识

廉价感情. 提交于 2020-01-25 23:43:57
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。 正则 待匹配字符 匹配结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 [0123456789] a False 由于字符组中没有"a"字符,所以不能匹配 [0-9] 7 True 也可以用-表示范围,[0-9]就和[0123456789]是一个意思 [a-z] s True 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 [A-Z] B True [A-Z]就表示所有的大写字母 [0-9a-fA-F] e True 可以匹配数字,大小写形式的a~f,用来验证十六进制字符 字符: 补充: \A 仅匹配字符串的开始 \A12AC匹配12AC \b 匹配一个单词的边界

RegexBuddy正则表达式工具

大城市里の小女人 提交于 2020-01-14 15:40:59
RegexBuddy非常的好用,而且还能生成.net的代码。 我们在使用正则匹配时,毕竟.net提供的方法中,对于多行匹配就不能用单纯的正则去实现,而我们需要把它转换成相应的类库方法进行实现。 那么RegexBuddy这个工具就很好的提供了这些生成的代码。而且,可以针对主流语言进行生成,非常的方便。 效果如下: 下面是我收集的一些使用教程: http://www.lifeba.org/arch/regexbuddy.html 一、RegexBuddy下载及安装 本站下载地址: JGsoft-RegexBuddy-v3.1.0.rar ,也可以在 http://www.regexbuddy.com/ (RegexBuddy的官网)进行最新版本的下载和正版的购买。下载后直接安装,打开界面如下: 二、工具界面 1、首先切换到 Side By Side Layout,这个布局,更方便操作。 2、界面主要包括:正则表达式、测试文本、输出结果、历史记录、Create相关面板。 三、使用介绍 打开RegexBuddy后默认载入的是上一次你所测试的正则信息,选项配置信息都会自动载入上次你所设置的内容。历史记录中显示的是你所测试过得正则信息。 1、测试正则表达式。 a、在正则表达式输入需要测试的正则,如:。可以通过上面的面板选择语言,默认是JGosft,可以指定JAVA,Python等。 b

RegexBuddy——正则

断了今生、忘了曾经 提交于 2020-01-14 15:40:10
转自:http://www.lifeba.org/arch/regexbuddy.html adam说stvent是程序员的楷模,向楷模学习! 转载请注明: 转载自 Life吧 本文永久链接地址: http://www.lifeba.org/arch/regexbuddy.html 一、RegexBuddy下载及安装 本站下载地址: JGsoft-RegexBuddy-v3.1.0.rar ,也可以在 http://www.regexbuddy.com/ (RegexBuddy的官网)进行最新版本的下载和正版的购买。下载后直接安装,打开界面如下: 二、工具界面 1、首先切换到 Side By Side Layout,这个布局,更方便操作。 2、界面主要包括:正则表达式、测试文本、输出结果、历史记录、Create相关面板。 三、使用介绍 打开RegexBuddy后默认载入的是上一次你所测试的正则信息,选项配置信息都会自动载入上次你所设置的内容。历史记录中显示的是你所测试过得正则信息。 1、测试正则表达式。 a、在正则表达式输入需要测试的正则,如:。可以通过上面的面板选择语言,默认是JGosft,可以指定JAVA,Python等。 b、测试文本面板(Test标签)输入需要测试的文本内容,如:。可以选择Line By Line、Whole File、Page By Page

python编程实例-使用正则收集IP信息

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-09 02:36:44
1 #!/usr/bin/env python 2 3 from subprocess import PIPE,Popen 4 import re 5 6 def getIfconfig(): 7 p = Popen(['ifconfig'],stdout=PIPE) 8 data = p.stdout.read().split('\n\n') 9 return [i for i in data if i and not i.startswith('lo')] 10 11 def parseIfconfig(data): 12 re_devname = re.compile(r'(br|eth|lo|em|virbr|bond)[\d:]+') 13 re_mac = re.compile(r'HWaddr ([0-9A-F:]{17})',re.M) 14 re_ip = re.compile(r'inet addr:([\d\.]{7,15})',re.M) 15 devname = re_devname.search(data) 16 if devname: 17 devname = devname.group() 18 else: 19 devname = '' 20 mac = re_mac.search(data) 21 if mac: 22 mac = mac