正则表达式python
❶ 想请教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