re正则表达式方法
1、python正则匹配
1.1 re.search 正则表达式
search将字符串的所有字串尝试与正则表达式匹配,如果所有的字串都没有匹配成功,返回none,否则返回matchobject;(可以理解为“无为0,有为1”)
import re
s1 = "helloworld,i am 30"
w1 = "world"
m1 = re.search(w1,s1)
if m1:
print("find:%s"%m1.group())
输出为:(m1.group()可以一次输出多个数组--对应字符串,此处匹配到一个world,则输出匹配到的一个字符串)
world
1.2 re.match() 正则表达式
match只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则返回none
import re
s1 = "helloworld,i am 30"
w1 = "world"
m1 = re.match(w1,s1)
if m1:
print("find:%s"%m1.group())
else
print("no match")
输出为:(由于re.match()从字符串开头匹配,两个字符串都不匹配,因此无法匹配)
no match
1.3 re.match与re.search的区别
1.4 检索和替换
(1)repl参数是一个函数
(2)re.compile函数
(3)findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意:match和serach是匹配一次,findall是匹配所有。
语法格式为:findall(string[, pos[, endpos]])
参数:
- string:待匹配的字符串;
- pos:可选参数,指定字符串的起始位置,默认为0;
- endpos:可选参数,指定字符串的结束位置,默认为字符串的长度;
查找字符串中的所有数字:
pattern = re.complie(r'\d+') #查找数字
result1 = pattern.findall('runoob 123 google 456')
result2 = pattern.findall('run88oobgoogle456', 0, 10)
print(result1)
print(result2)
输出结果为:
['123', '456']
['88', '12']
result2 = pattern.findall('run88oobgoogle456', 0, 10)中的0指的是字符串中的起始位置,10指的是字符串的结束位置,默认为字符串的长度;
(4)re.finditer
(5)re.split
1.5 正则表达式对象
(1)re.RegexObject
(2)re.MatchObject
1.6 正则表达式修饰符 - 可选标志
1.7 正则表达式模式
1.8 正则表达式实例
1.9 正则表达式re.findall用法
语法:findall(pattern, string, flags=0)
正则re.findall是返回string中所有与pattern相匹配的全部字串,返回形式为数组;
(1)一般情况
regular_v1 = re.findall(r"docs", "https://docs.python.org/3/whatsnew/3.6.html")
print(regual_v1)
输出结果为:
['docs']
(2)符号^表示匹配https开头的字符串返回
regular_v2 = re.findall(r"^https", "https://docs.python.org/3/whatsnew/3.6.html")
print(regular_v2)
输出结果为:
['https']
(3)用$符号表示以html结尾的字符串返回,判断是否字符串结束的字符串
regular_v3 = re.findall(r"html$", "https://docs.python.org/3/whatsnew/3.6.html")
print(regular_v3)
输出结果为:
'html'
(4)[...]匹配括号中的其中一个字符
regular_v4 = re.findall(r"[t,w]h", "https://docs.python.org/3/whatsnew/3.6.html")
print(regular_v4)
输出结果为:
['th', 'wh']
(5)“d”是正则语法规则用来匹配0到9之间的数返回列表
regular_v5 = re.findall(r"\d", "https://docs.python.org/3/whatsnew/3.6.html")
regular_v6 = re.findall(r"\d\d\d", "https://docs.python.org/3/whatsnew/3.6.html/1234")
print(regular_v5)
print(regular_v6)
输出结果为:
['3', '3', '6']
['123']
(6)小d表示取数字0-9,大D表示不要数字,也就是除了数字以外的内容返回
regular_v7 = re.findall(r"\D", "https://docs.python.org/3/whatsnew/3.6.html")
print(regular_v7)
输出结果为:
['h', 't', 't', 'p', 's', ':', '/', '/', 'd', 'o', 'c', 's', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '/', '/', 'w', 'h', 'a', 't', 's', 'n', 'e', 'w', '/', '.', '.', 'h', 't', 'm', 'l']
(7)“w”在正则里面代表匹配从小写a到z,大写A到Z,数字0到9
regular_v8 = re.findall(r"\w", "https://docs.python.org/3/whatsnew/3.6.html")
print(regular_v8)
输出结果为:
['h', 't', 't', 'p', 's', ':', '/', '/', 'd', 'o', 'c', 's', '.', 'p', 'y', 't', 'h', 'o', 'n', '.', 'o', 'r', 'g', '/', '/', 'w', 'h', 'a', 't', 's', 'n', 'e', 'w', '/', '.', '.', 'h', 't', 'm', 'l']
(8)“W”在正则里面代表匹配除了字母与数字以外的特殊符号
regular_v8 = re.findall(r"\W", "https://docs.python.org/3/whatsnew/3.6.html")
print(regular_v8)
输出结果为:
[':', '/', '/', '.', '.', '/', '/', '/', '.', '.']
re正则表达式方法的更多相关文章
- 千万别把js的正则表达式方法和字符串方法搞混淆了
我们在字符串操作过程中肯定经常用了test() split() replace() match() indexof()等方法,很多人经常把用法写错了,包括我,所以今天细细的整理了下. test()是判 ...
- JS正则表达式方法
使用正则表达式的主要有match,exec,test 1.正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假. var user_code = $(" ...
- 【六】PHP正则表达式方法
PHP中正则表达式的声明格式有两种方式,一种是POSIX老版模式,已经不常用.还有一种是其他语言中常见的PCRE方法. 1.正则表达式的匹配方法并返回匹配的项:array preg_grep(stri ...
- JavaScript正则表达式方法总结
str.match(reg) 1.reg没有全局标志g,match将只执行一次匹配.匹配成功返回一个数组,arr = [$0,$1,$2,...,index,str],匹配失败返回null. arr中 ...
- js 去掉前后空格(正则表达式方法)
代码: ' aaa '.replace(/(^\s*)|(\s*$)/g, '')
- 浅析正则表达式模式匹配的String方法
在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace.match.search等方法,以下是对一些方法使用的总结. Stri ...
- js中正则表达式 书写方法
function test(){ var text="index.aspx?test=1&ww=2&www=3"; var re = ...
- 浅析正则表达式模式匹配的 String 方法
在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace.match.search等方法,以下是对一些方法使用的总结. Stri ...
- JavaScript 正则表达式——定义,目的,特点,语法,字符串方法,search() ,replace() ,test(),exec()
㈠什么是正则表达式? ⑴正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念. 正则表达式通常被用来检 ...
随机推荐
- TI 多模雷达1843毫米波雷达做自动泊车(用了8个雷达)
http://e2e.ti.com/blogs_/b/behind_the_wheel/archive/2019/01/09/how-mmwave-sensors-enable-autonomous- ...
- 【修改缓存路径】修改Gradle缓存路径的几种方式
起因 Android Studio的gradle在缓存处理上有时候会莫名其妙的出问题,必要时需要手动删除缓存,然后重新编译.有时也有出于其他考虑指定gradle缓存路径. 方法1:修改gradle文件 ...
- 题解——Codeforces Round #508 (Div. 2) T1 (模拟)
依照题意暴力模拟即可A掉 #include <cstdio> #include <algorithm> #include <cstring> #include &l ...
- Unity3D学习笔记(二十五):Json
Json:使用固定的文本格式来存储和表示数据! 优点:简介,清晰,易于人的阅读和编写,易于机器的解析和生成. 类似:XML富文本形式 Json的键值对(类中的变量): Json的键值对是使用冒号来区分 ...
- 几个优化SQL查询的方法
1.什么是执行计划 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化 ...
- spring applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- mysql Percona-XtraBackup backup
全量备份FULL BACKUP https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/full_backup.html ...
- GCD LCM UVA - 11388
代码很短理解不容易,在这说不清,大家代码里寻真相. 为什么二者相除就可以A了多找点数试试理解理解. #include<stdio.h> #define mod 1000000007 #de ...
- tkinter 打包成exe可执行文件
1.安装pyinstaller pip install pyinstaller 2.打包 打开cmd,切换到需要打包的文件(demo.py)目录.执行 pyinstaller -F -w demo.p ...
- 随机--相关(Fisher_Yates算法)
Fisher_Yates算法 void ShuffleArray_Fisher_Yates(char* arr, int len) { int i = len, j; char t ...