导航:首页 > 编程语言 > python正则表达式

python正则表达式

发布时间:2022-01-13 05:18:38

A. 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

B. 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]

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

C. python 正则表达式 (.*)

groups()返回所有捕获组构成的tuple。你的正则表达式中有唯一一个捕获组(.*?),而?在此处表示非贪婪匹配,即在整个正则表达式成立的前提下匹配尽可能少的字符,此处最少的情况是什么也不匹配,整个正则表达式匹配Python中的Py,而捕获组自然为空字符串。

D. python正则表达式re.findall(r"\b\w+\b", s)中的r是什么意思

在Python的string前面加上‘r’, 是为了告诉编译器这个string是个raw string,不要转意backslash '' 。 例如, 在raw string中,是两个字符,和n, 而不会转意为换行符。由于正则表达式和 会有冲突,因此,当一个字符串使用了正则表达式后,最好在前面加上'r'。

例:r" ”

作用:声明后面的字符串是普通字符串

特殊字符串中含有:转义字符 什么什么的

用途:一般用在 正则表达式、文件绝对地址

1,正则表达式:

这样就不用专门的去处理引号之中的特殊字符了

E. python正则表达式基础

下面列出: 1.测试正则表达式是否匹配字符串的全部或部分regex=ur"" #正则表达式
if re.search(regex, subject): do_something()else: do_anotherthing() 2.测试正则表达式是否匹配整个字符串 regex=ur"/Z" #正则表达式末尾以/Z结束
if re.match(regex, subject): do_something()else: do_anotherthing() 3.创建一个匹配对象,然后通过该对象获得匹配细节(Create an object with details about how the regex matches (part of) a string) regex=ur"" #正则表达式
match = re.search(regex, subject)if match: # match start: match.start() # match end (exclusive): atch.end() # matched text: match.group() do_something()else: do_anotherthing() 4.获取正则表达式所匹配的子串(Get the part of a string matched by the regex) regex=ur"" #正则表达式
match = re.search(regex, subject)if match: result = match.group()else: result ="" 5. 获取捕获组所匹配的子串(Get the part of a string matched by a capturing group) regex=ur"" #正则表达式
match = re.search(regex, subject)if match: result = match.group(1)else: result ="" 6. 获取有名组所匹配的子串(Get the part of a string matched by a named group) regex=ur"" #正则表达式
match = re.search(regex, subject)if match:result = match.group"groupname")else:result = "" 7. 将字符串中所有匹配的子串放入数组中(Get an array of all regex matches in a string) result = re.findall(regex, subject) 8.遍历所有匹配的子串(Iterate over all matches in a string) for match in re.finditer(r"<(.*?)/s*.*?//1>", subject) # match start: match.start() # match end (exclusive): atch.end() # matched text: match.group() 9.通过正则表达式字符串创建一个正则表达式对象(Create an object to use the same regex for many operations) reobj = re.compile(regex) 10.用法1的正则表达式对象版本(use regex object for if/else branch whether (part of) a string can be matched) reobj = re.compile(regex)if reobj.search(subject): do_something()else: do_anotherthing() 11.用法2的正则表达式对象版本(use regex object for if/else branch whether a string can be matched entirely) reobj = re.compile(r"/Z") #正则表达式末尾以/Z 结束
if reobj.match(subject): do_something()else: do_anotherthing() 12.创建一个正则表达式对象,然后通过该对象获得匹配细节(Create an object with details about how the regex object matches (part of) a string) reobj = re.compile(regex) match = reobj.search(subject)if match: # match start: match.start() # match end (exclusive): atch.end() # matched text: match.group() do_something()else: do_anotherthing() 13.用正则表达式对象获取匹配子串(Use regex object to get the part of a string matched by the regex) reobj = re.compile(regex) match = reobj.search(subject)if match: result = match.group()else: result ="" 14.用正则表达式对象获取捕获组所匹配的子串(Use regex object to get the part of a string matched by a capturing group) reobj = re.compile(regex) match = reobj.search(subject)if match: result = match.group(1)else: result ="" 15.用正则表达式对象获取有名组所匹配的子串(Use regex object to get the part of a string matched by a named group) reobj = re.compile(regex) match = reobj.search(subject)if match: result = match.group("groupname")else: result ="" 16.用正则表达式对象获取所有匹配子串并放入数组(Use regex object to get an array of all regex matches in a string) reobj = re.compile(regex) result = reobj.findall(subject) 17.通过正则表达式对象遍历所有匹配子串(Use regex object to iterate over all matches in a string) reobj = re.compile(regex)for match in reobj.finditer(subject): # match start: match.start() # match end (exclusive): match.end() # matched text: match.group()字符串替换 1.替换所有匹配的子串 #用newstring替换subject中所有与正则表达式regex匹配的子串
result = re.sub(regex, newstring, subject) 2.替换所有匹配的子串(使用正则表达式对象) reobj = re.compile(regex) result = reobj.sub(newstring, subject) 字符串拆分 1.字符串拆分 result = re.split(regex, subject) 2.字符串拆分(使用正则表示式对象) reobj = re.compile(regex) result = reobj.split(subject)

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

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

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

G. 想请教python 正则表达式

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

在此例中

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


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

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

不知道这样讲解时否明白

H. python 正则表达式

正则语法:

top|123

效果:

I. python 判断正则表达式

看了你的提问,你的要求是:

输入格式:

输入包含两行:

  1. 待匹配字符串

  2. 正则表达式

输出格式:

若正则表达式能够匹配第一行字符串则输出True,否则,输出False

以下是我依据你的功能需求,个人简单写的一些代码,供你参考:

importre

flg=True
#定义主要工作代码函数
defjobCode(txtstr,regex):
result=re.search(regex,txtstr)
#如果匹配第一行字符串flg为True,否则flg为False
ifresult.group()==txtstr:
#print(result.group())
returnflg==True#返回flg并终止循环
else:
#print(result.group())
returnflg==False#返回flg并终止循环

#程序主入口
if__name__=='__main__':
txtstr=str(input("请输入待匹配的字符串:"))
regex=input("请输入正则表达式:")
print(jobCode(txtstr,regex))#调用定义函数jobCode()

代码应该还能更简洁,具体你自己去完善。

纯手工,如果对你有帮助望采纳!

阅读全文

与python正则表达式相关的资料

热点内容
精品php源码 浏览:958
自己编写云服务器抢红包 浏览:201
java解压缩文件加密 浏览:886
dlink打印服务器默认地址 浏览:351
php休眠函数 浏览:371
金蝶如何打开服务器 浏览:764
e4a手游辅助源码 浏览:776
什么app可以实时直播 浏览:105
苹果13的app闪退什么原因 浏览:774
尾盘选股源码公式 浏览:449
php日期运算 浏览:930
天龙八部长歌服务器什么时候开的 浏览:198
鬼泣4模型在那个文件夹 浏览:228
单片机的串行口 浏览:57
phpjson转化为数组 浏览:267
pdf导入excel 浏览:427
苹果xsmax信任app在哪里设置 浏览:52
自动外链php源码 浏览:244
我的世界新手奖励箱命令 浏览:145
linux更新vim 浏览:997