当前位置:首页 » 编程语言 » 正则表达式python

正则表达式python

发布时间: 2022-01-10 03:01:58

❶ 想请教python 正则表达式

这你就需要了解正则表达式的贪婪匹配和非贪婪匹配

在此例中

#.*是贪婪匹配模式,所谓贪婪匹配就是在整个表达式匹配成功的前提下,尽可能多的匹配,
#也就是所谓的“贪婪”,通俗点讲,就是看到想要的,有多少就捡多少,除非再也没有想要的了。


#.*?是非贪婪模式,所谓非贪婪模式就是在整个表达式匹配成功的前提下,尽可能少的匹配,
#也就是所谓的“非贪婪”,通俗点讲,就是找到一个想要的捡起来就行了,
#至于还有没有没捡的就不管了

#举个例子
#字符串"abcdccd"
#那么"a.*"匹配的是"abcdccd",贪婪模式,从a开始的我都要了
#"a.*?"匹配的是"a",非贪婪模式,满足条件的情况下,我只要a就行了
#"a.*?d"匹配的是"abcd",非贪婪模式,我只要从a开始最快到d的字符串就行了
#"a.*d"匹配的是"abcdccd",贪婪模式,我只要从a开始,到最远d的就可以了

不知道这样讲解时否明白

❷ python中正则表达式中的^怎么用

你的意思是匹配字符串中的“^”,还是 正则表达式中 ^ 的用法;

#看你的描述大概是第二种
#^在正则表达式中表示匹配以xx开头的字符
#比如:
importre

r=re.compile(r"^d+")
s="124,b45"
s2="as12"
r.findall(s)#['124']
r.findall(s2)#[]空数组,字符不是以数字开头

❸ python 正则表达式

正则语法:

top|123

效果:

❹ python|正则表达式

\1指的就是捕获组1的内容,具体内容你可以搜索下(也叫后向引用),/i是忽略大小写,g是搜索所有内容,\b是指单词的开头或结尾
整个连起来/\b([a-z]+) \1\b/ig就表示在字符串中搜索重复的单词(以字母开头),忽略大小小,所以匹配会得到3组内容,即Is is、of of和up up

❺ python中的正则表达式中的 "|"

Python中re.findall()函数是要求正则表达式在捕获第0组数据时,要在正则表达式上加小括号才能捕获.

也就是说如果你要获取整个正则表达式匹配的数据(你这里是电子邮箱地址),需要在正则表达式外面加小括号,

然后取第0捕获组的数据(你这里是[x[0] for x in zhengze]),

因为findall函数把每一个匹配的多个捕获组(就是你正则表达式中的小括号中)的数据放到一个元组里,所以要用for循环把第0捕获组的数据取出来.

具体程序改进如下

>>>zhengze=re.findall("([A-Za-z0-9]+@(163|qq|gmail).com)",txt)

>>>[x[0]forxinzhengze]

结果就是你要的邮箱列表了.

❻ python的正则表达式怎么用

在ipython中测试一下代码:(读入一个图片文件的地址字符串)
?

1
2
3
4
5
6
7
8
9
10
11
12

a = input("input a:\n")
print "the input method: ",a
b = raw_input("input b:\n")
print "the raw_input method: ",b

input a:
'/home/sunny/caffe-master/examples/images/cat.jpg'
the input method: /home/sunny/caffe-master/examples/images/cat.jpg

input b:
'/home/sunny/caffe-master/examples/images/cat.jpg'
the raw_input method: '/home/sunny/caffe-master/examples/images/cat.jpg'

另外,对于两种输入方式另一个直观区别就是input自带运算处理功能,也就是输入算式的话会直接输出结果,而raw_input会原汁原味(raw)地输出:

?

1
2
3
4

#! -*- coding:utf-8 -*-
print raw_input(u'测试raw_input:\n')

print input(u'测试input:\n')

❼ python正则表达式匹配

import re
print(re.findall(r"[12|22]+3", "123223"))

❽ python 正则表达式.* 是什么意思 详细解释

分开来说:
1、. 匹配任意除换行符“\n”外的字符;
2、*表示匹配前一个字符0次或无限次;

3、+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复;
4、 .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
如:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab。

❾ python正则表达式

group和groups是两个不同的函数。

一般,m.group(N) 返回第N组括号匹配的字符。
而m.group() == m.group(0) == 所有匹配的字符,与括号无关,这个是API规定的。

m.groups() 返回所有括号匹配的字符,以tuple格式。
m.groups() == (m.group(0), m.group(1), ...)

对你给的例子:

m = re.match("([abc])+", "abc")
你的+号在括号外面。括号最多匹配到一个字符,要么是a, 要么是c,这个python引擎匹配的是末尾的c。
而m.group() == m.group(0) 这个返回的是整个匹配的字符串"abc".

关于捕获型括号在正则表达式里的用法,参见相关文档。
参见http://..com/link?url=CltRBzI_-_jFl88a

热点内容
如何建立家庭网站服务器 发布:2024-12-26 10:40:46 浏览:185
安卓显示e是什么意思 发布:2024-12-26 10:35:13 浏览:705
电磁炉编程 发布:2024-12-26 10:30:51 浏览:97
经典福克斯压缩比是多少 发布:2024-12-26 10:26:33 浏览:747
存取速度最快的存储器是 发布:2024-12-26 10:17:39 浏览:66
我的世界服务器只能边跳边走 发布:2024-12-26 09:55:26 浏览:464
锈湖绿色盒子密码是什么 发布:2024-12-26 09:53:16 浏览:205
mysql数据库连接类 发布:2024-12-26 09:49:21 浏览:83
体算法 发布:2024-12-26 09:29:22 浏览:844
android时间时区时间 发布:2024-12-26 09:09:54 浏览:691