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

python 正则表达式

时间:2023-02-26 21:02:14浏览次数:33  
标签:re python pattern 正则表达式 result groups print 123456

import re
print("*"*20)
#re.match  在字符串开头进行匹配
pattern = "(\d+)(@)"
string = "[email protected]"
result = re.match(pattern,string)
print(result.group())#匹配整个group,所有的匹配项  123456@
print(result.group(0))#和上面的是一样的,匹配整个group   123456@
print(result.group(1)) # 123456
print(result.group(2)) # @

print(result.groups())  #  ('123456', '@')  返回一个元组, 元组里面是所有匹配的分组
print(result.groups()[0])
print(result.groups()[1])

"""
group()用来提出"分组"截获的"字符串",()用来分组;
groups()"匹配对象"的方法,一次性获取所有的分组,返回类型为元组。
"""

print("*"*20)
#groups 对于没有匹配到的分组返回来的是None
pattern = "(\d+)|(@)"
string = "[email protected]"
result = re.match(pattern,string)
print(result.groups()) #('123456', None)
print(result.groups()[0]) #123456
print(result.groups()[1])  #None

print("*"*20)
print("注意group 与groups的区别, 可以看这个例子")
pattern = "\d+"
string = "[email protected]"
result = re.match(pattern,string)
print(result.group()) #123456
print(result.groups())#() 没有设置分组, groups返回的就是空的元组()

print("*"*20)
pattern = "(\d+)"
string = "[email protected]"
result = re.match(pattern,string)
print(result.group()) #123456
print(result.groups()) # 设置分组, groups返回的就是('123456',)


print("*"*20)
#search 查找任意位置的匹配
string = "qq.com"
mo = re.compile(r"(\d+)|(@)")
mo2 = mo.search(string)
print("mo2",mo2) #  没有匹配上返回None

#re.sub  返回的是被替换之后的字符串
strings = "hello ,world,HI , world"
pattern = ","
result1 = re.sub(pattern, "。", strings)
print(re.sub(pattern, "。", strings)) # hello 。world。HI 。 world
print(result1) #hello 。world。HI 。 world
#re.subn  返回的是一个数组
result2 = re.subn(pattern, "。", strings)
print(re.subn(pattern, "。", strings)) #('hello 。world。HI 。 world', 3)  3表示替换的次数
print(result2)#('hello 。world。HI 。 world', 3) 

print("*"*20)
#编译正则表达式
print("编译正则表达式")
string2 = "[email protected]"
rePattern  = re.compile(r"\d+")
mo = rePattern.search(string2)
if mo is not None:
    print("mo is not Nono , match")
    print(mo.group()) # 123456
    print(mo.groups()) #()
else:
    print("can not match")

"""
findall: 从字符串任意位置查找,返回一个列表
finditer:从字符串任意位置查找,返回一个迭代器
"""
print("*"*20)
pattern3 = "\d+"
string4 = "123%456$789"
print(re.findall(pattern3, string4)) #返回一个列表  ['123', '456', '789']
print(re.finditer(pattern3, string4))# 返回一个迭代器   <callable_iterator object at 0x7fcbcbfde350>
finditerIter =  re.finditer(pattern3,string4)
for i in finditerIter:
    print(i)


#使用re.splitl 分割字符串re.split(pattern, string, maxsplit=0, flags=0)
text= "shunA1shunB2 shun shun3C"
pattern = r"\d+|\s+\|\d+\s+"
print(re.split(pattern,text))

 

标签:re,python,pattern,正则表达式,result,groups,print,123456
From: https://www.cnblogs.com/shunguo/p/17157645.html

相关文章

  • Python实现负数的“反转”
    如何实现“负数”的反转呢?比如:-123转成-321,首先提供一个思路,首先使用一个标记来判断传入的实参是正数还是负数?然后将得出的判断的结果先取绝对值,最后转成字符串进行切片反......
  • python的排序问题
    python的排序方法有两个1nums.sort()#原数组上排序,没有返回值,nums变为有序2#或者3nums=sorted(nums)#原数组不变,会返回一个排好序的新数组 那么如何......
  • 第一周 python数据分析与挖掘技术实战 第三章
    总结 ............. 图3-1 importpandasaspdcatering_sale='catering_sale.xls'data=pd.read_excel(catering_sale,index_col=u'日期')print(data.descri......
  • python数据分析画图
    importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltpath='./data/catering_sale.xls'data=pd.read_excel(path,index_col=u'日期')#读取......
  • python数据分析
    -*-coding:utf-8-*-#代码3-1使用describe()方法即可查看数据的基本情况importpandasaspdcatering_sale='../data/catering_sale.xls'#餐饮数据data=p......
  • python数据分析
    #-*-coding:utf-8-*-"""SpyderEditorThisisatemporaryscriptfile."""importpandasaspdfrommatplotlibimportpyplotasplt##读取数据url=r"F:\data\ca......
  • 应用Python进行统计数据画图
     画饼图:#-*-coding:utf-8-*-"""SpyderEditorThisisatemporaryscriptfile."""importpandasaspdimportnumpyasnp#importseabornasimportmatplotli......
  • [oeasy]python0094_视频游戏_双人网球_pong_atari_mos_6502_雅达利_米洛华
    编码进化回忆上次内容上次我们回顾了微软之前的比尔盖茨和保罗艾伦mits迎来的是帮手还是隐患?intel-8080遇到了mos-6502底层硬件驱动游戏行业......
  • Turtlebot4入门教程-演示-创建节点(Python)
    说明:本教程将介绍创建ROS2包和用Python编写ROS2节点的步骤。​​有关C++示例,请单击此处​​。这些步骤与 ​​ROS2教程类似​​​,但侧重于与TurtleBot4的交互......
  • 「Python实用秘技13」Python中临时文件的妙用
    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills这是我的系列文章「Python实用秘技」的第12期,本系列立足于笔者......