Python 正则表达式 匹配次数

  管道可以匹配多个正则表达式中的一个

>>>
>>> m=re.search(r‘Batman|Tina Fey‘,‘Batman and Tina Fey‘)
>>> print(m.group())
Batman
>>> m=re.search(r‘Batman|Tina Fey‘,‘Tina Fey and Batman‘)
>>> print(m.group())
Tina Fey
>>>

  问号表明它前面的字符或分组在这个模式中是可选的,匹配“零次或一次"

>>> batRegex=re.compile(r‘Bat(wo)?man‘)
>>> m1=batRegex.search(‘I am a Batman‘)
>>> print(m1.group())
Batman
>>> m2=batRegex.search(‘I am a Batwoman‘)
>>> print(m2.group())
Batwoman
>>>

在上述正则表达式中wo是可选的,既可以匹配Batman,又可以匹配Batwoman

>>>
>>> phoneRegex=re.compile(r‘(\d{3}-)?\d{3}-\d{4}‘)
>>> m1=phoneRegex.search(‘My phone number is 021-456-2345‘)
>>> print(m1.group())
021-456-2345
>>> m2=phoneRegex.search(‘My phone number is 456-2345‘)
>>> print(m2.group())
456-2345
>>>

上面的正则表达式匹配的电话号码可以带区号,也可以不带区号

  星号意味着“匹配零次或者多次”

>>>
>>> batRegex=re.compile(r‘Bat(wo)*man‘)
>>> m=batRegex.search(‘I am a Batman‘)
>>> print(m.group())
Batman
>>> m=batRegex.search(‘I am a Batwoman‘)
>>> print(m.group())
Batwoman
>>> m=batRegex.search(‘I am a Batwowoman‘)
>>> print(m.group())
Batwowoman
>>>

  加号意味着“匹配一次或多次”

>>>
>>> batRegex=re.compile(r‘Bat(wo)+man‘)
>>> m=batRegex.search(‘I am a Batwoman‘)
>>> print(m.group())
Batwoman
>>> m=batRegex.search(‘I am a Batwowoman‘)
>>> print(m.group())
Batwowoman
>>> m=batRegex.search(‘I am a Batman‘)
>>> m == None
True
>>>

  花括号匹配特定次数

(ha){2}匹配‘haha’

(ha){2,}匹配2次或更多次ha

(ha){.2}匹配0到2次ha

(ha){2.5}匹配2到5次ha

时间: 2024-10-06 05:02:37

Python 正则表达式 匹配次数的相关文章

python 正则表达式匹配次数 findall 用法

匹配次数用 {}界定 re.search 能产生group(), 可以访问每个组的字符串 re.findall 产生的结果是列表,其中的元素可以是字符串,也可以是元组 Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\user>python Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul  5 2016, 11:41:1

Python: 正则表达式匹配反斜杠 "\"

Python正则表达式匹配反斜杠 "\" eg: >>>a='w\w\w' 'w\\w\\w' #  打印出来的 "\\" 被转义成 一个反斜杠 "\" 如果需要匹配字符串a,需要匹配一个反斜杠 "\" >>>re.split(r'\\',a) ['w','w','w',] 先对字符串转义,再进行正则表达式转义 由于原始字符串中所有字符直接按照字面意思来使用,不转义特殊字符,故不做字符串转义

python 正则表达式 匹配指定字符遇到问题记录

匹配1, 12 ,234 错误的例子: import reline = "prediction correct 1 >>>>>>>>>>>>>>>>>>>>!real class: 12, predicted class:234 ";pattern = re.compile(r'.*real class.*(\d*).*predicted class.*(\d*).*

python 正则表达式 匹配指定字符

比如 line = "result of fold 0, instance 3."; 有时候你只要 里面的0, 或者 3 , 怎么办? 只要在正则表达式中加个括号: pattern = re.compile(r'.?instance.?(\w).') 用括号 \w , 那么group(1)就会只有3这个数字:

python正则表达式匹配多行

参数re.S jsProp = 'b' fpData = '''var a = []; var b = []; var c = [];''' .*是尽可能匹配多的 searchResult = re.search((r'((var\s+|\s*)%s\s*=\s*)\[.*\]'%jsProp), fpData, re.S) 结果:searchResult == '''var b = []; var c = []''' .*?匹配到第一个满足条件的 searchResult = re.searc

python正则表达式匹配时间和IP地址

t = '19:16:30' mt = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t) print mt.groups() ip = '255.105.25.55' ipm = re.match(r'^([1-9]?\d|1\d\d|2[0-4]\d

python正则表达式匹配中文

# -*- coding: utf-8 -*- import re def findPart(regex, text, name): res=re.findall(regex, text) if res: print "There are %d %s parts:\n"% (len(res), name) for r in res: print "\t",r.encode("utf8") print text ="#who#hellow

Python正则表达式就是这么简单【新手必学】

一前言本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式.看完这篇文章,读者们要理解什么是正则表达式,正则表达式的规则,常见的正则表达式示例,如何在python中使用函数进行正则表达式操作: 二 正则表达式的概念正则表达式是指在一串字符串中使用特殊的模式匹配获得子串,我们可以对获得的子串进行提取,替换等操作: 举个例子zszxz666 这个字符串,现在知识追寻者想要获得子串zszxz, 则需

[Python正则表达式] 字符串中xml标签的匹配

现在有一个需求,比如给定如下数据: 2009-2-12 9:22:2 #### valentine s day 2011 #### sex is good for you #### Making love pleasures life genuinely good say researchers does healthy sex life boost mood growing evidence boosts physical increasing longevity reducing risk