来源

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正则表达式方法的更多相关文章

  1. 千万别把js的正则表达式方法和字符串方法搞混淆了

    我们在字符串操作过程中肯定经常用了test() split() replace() match() indexof()等方法,很多人经常把用法写错了,包括我,所以今天细细的整理了下. test()是判 ...

  2. JS正则表达式方法

    使用正则表达式的主要有match,exec,test 1.正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假. var user_code = $(" ...

  3. 【六】PHP正则表达式方法

    PHP中正则表达式的声明格式有两种方式,一种是POSIX老版模式,已经不常用.还有一种是其他语言中常见的PCRE方法. 1.正则表达式的匹配方法并返回匹配的项:array preg_grep(stri ...

  4. JavaScript正则表达式方法总结

    str.match(reg) 1.reg没有全局标志g,match将只执行一次匹配.匹配成功返回一个数组,arr = [$0,$1,$2,...,index,str],匹配失败返回null. arr中 ...

  5. js 去掉前后空格(正则表达式方法)

    代码: ' aaa '.replace(/(^\s*)|(\s*$)/g, '')

  6. 浅析正则表达式模式匹配的String方法

    在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace.match.search等方法,以下是对一些方法使用的总结. Stri ...

  7. js中正则表达式 书写方法

    function test(){    var text="index.aspx?test=1&ww=2&www=3";            var   re = ...

  8. 浅析正则表达式模式匹配的 String 方法

    在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace.match.search等方法,以下是对一些方法使用的总结. Stri ...

  9. JavaScript 正则表达式——定义,目的,特点,语法,字符串方法,search() ,replace() ,test(),exec()

    ㈠什么是正则表达式? ⑴正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.    正则表达式通常被用来检 ...

随机推荐

  1. FFmpeg:视频转码、剪切、合并、播放速调整

    原文:https://fzheng.me/2016/01/08/ffmpeg/ FFmpeg:视频转码.剪切.合并.播放速调整 2016-01-08 前阵子帮导师处理项目 ppt,因为插入视频的格式问 ...

  2. java 安装环境 疑问(1)

    java安装时有看到javaEE的 sdk 和 javaSE的jdk,这一点查一下资料,一般时安装jdk就好了

  3. P2604 [ZJOI2010]网络扩容

    思路 简单的费用流问题,跑出第一问后在残量网络上加边求最小费用即可 代码 #include <cstdio> #include <algorithm> #include < ...

  4. qt QRegExp使用(搬运工)

    设置正则表达式. 类似下面的 QRegExp 这里的用法就是用来检测QString等字符串错误的,例如文件名里面最好就不出现<>|/\:等,所以可以如下定义QRegExp rx(" ...

  5. Lintcode241-String to Integer - Naive

    Given a string, convert it to an integer. You may assume the string is a valid integer number that c ...

  6. C#题目及答案(2)

    1. NET和C#有什么区别 答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术. C#是一种编程语言,可以基于.NET平台的应用. 2.一列数的规则如下: 1.1.2.3. ...

  7. 《机器学习实战》之k-近邻算法(改进约会网站的配对效果)

    示例背景: 我的朋友海伦一直使用在线约会网站寻找合适自己的约会对象.尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人.经过一番总结,她发现曾交往过三种类型的人: (1)不喜欢的人: (2)魅力一般 ...

  8. python实现八皇后问题

    import random def judge(state, nextX): #判断是否和之前的皇后状态有冲突 nextY = len(state) for i in range(nextY): if ...

  9. 解决Geoserver请求跨域的几种思路,第二种思路用过

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景描述 跨域问题是浏览器同源安全制引起的特别常见的问题.不同前端语 ...

  10. 【Ruby】【目录 & 引用 & 文件 】

    [[目录]] 当前文件在根目录下一个文件夹下 引用当前文件所在目录上一级目录下某.rb文件 方法一 require File.join(File.dirname(FILE),'..','test_on ...