Python中正则表达式的重复情况是什么?

Python中正则表达式的重复情况是什么?

我们可以使用一些特殊字符构建识别重复字符组的正则表达式。以下元字符可以用于搜索一个字符或一组重复字符。

问号是第一个重复运算符或限定符。通过指示引擎尝试匹配前一个标记0或1次,它有效地将其变为可选。

用星号或星号指示引擎尝试将前一个标记零次或多次匹配。加号指示引擎尝试多次匹配前一个标记。<[A-Za-z] [A-Za-z0-9]*>匹配没有任何属性的HTML标记。尖括号是文字表达式。初始字符类对应一个字母。第二个字符类匹配字母或数字。星号重复第二个字符类。如果第二个字符类什么也不匹配,那么这是可以接受的,因为我们利用了星号。因此,这个标记将匹配我们的正则表达式。

当匹配时,第一个字符类将匹配H。第二个字符类将重复三次,分别在每一步匹配T、M和L,这要归功于星号。我也可以选择使用[A-Za-z0-9]+。我没有这样做,因为这个正则表达式将匹配无效的HTML元素1>。不过,如果你确定要查找的文本不包含这样的错误标签,那么这个正则表达式可能就足够了。

更多Python相关文章,请阅读:Python 教程

限制重复

您还可以使用额外的量词指示一个标记可以重复多少次。语法是min,max,其中min表示匹配的最低次数(零或正整数),max表示匹配的最大次数(等于或大于min的整数)。如果逗号存在但max被省略,则最大匹配次数为无限。因此,值0和1等价于?,*和+。如果省略了逗号和max,则引擎将精确重复标记min次。

要匹配1000到9999之间的数字,请使用表达式b[1-9][0-9]3b。数字100到99999匹配值2,4b。请注意使用的限制词。

在重复中使用的元字符

字符 意思 例子
? 这表示前面的字符为零个或一个。 注意那里的零因为如果你不小心会让你犯错。 pythonl?y matches: pythony pythonly
* 查找前一个字符的零个或多个。 pythonl*y matches both of the above plus pythonlly, pythonllly, and so on
+ 查找前一个字符的一个或多个。 pythonl+y matches: pythonly, pythonlly, pythonllly,and so on
{n,m} 查找前面字符的n到m个重复。 fo{1,2} matches fo or foo

这些重复字符都可以用于描述字符组。因此,

>>> import re # Python的正则表达式模块 - 所有示例的隐式导入 

>>> re.match('(.an){1,2}s', 'cans') 

<re.MatchObject instance at 862760>

相同的模式也将匹配’cancans’或’pans’或’canpans’,但不匹配’bananas’。

示例

以下代码回答了上面的问题。

#导入re模块
import re
#存储字符串
s = "sheeeeeeeeple"
print("给定字符串 -",s)
#搜索重复的单词
match = re.search(r"he+", s)
#打印匹配的字母组
print ("最新字符串 -",match.group())

输出

给定字符串 - sheeeeeeeeple
最新字符串 - heeeeeeee

代码解释

首先,我们从正则模块中导入了re。然后我们在变量s中存储了一个字符串sheeeeeeeeple。通过使用search方法,在字符串s中搜索“e”的重复,并将其存储在变量match中。然后通过使用group方法,我们打印出匹配的单词。

示例2

以下代码回答了上面的问题

#导入re模块
import re
#存储字符串
s = "tutoriallllllllsPoint"
print('给定字符串 -',s)
#搜索重复的单词
match = re.search(r"al+", s)
#打印匹配的字母组
print ("最新字符串 -",match.group())

输出

给定字符串 - tutoriallllllllsPoint
最新字符串 - allllllll

代码解释

首先,我们从正则模块中导入了re。然后我们在变量s中存储了一个字符串sheeeeeeeeple。使用search方法,我们在字符串s中搜索“l”的重复,并将其存储在变量match中。然后通过使用group方法,我们打印出匹配的单词。

结论

一个被重复多次的表达式被称为重复。通过“*”可以重复表达式任意次,包括0次。通过“+”可以重复表达式至少一次。表达式后跟“?”可以重复0次或者一次。当需要明确指定最小次数和最大次数重复时,可以使用边界运算符{}。例如,a{2}表示字母“a”重复2次,a{2,4}表示字母“a”重复2到4次,a{2,}表示字母“a”至少重复2次,没有上限。注意,在{}中不能有空格,而且下限和上限的值没有上限。所有重复表达式均参考最短的前一个子表达式:一个单独的字符,一个字符集或者带有()的子表达式。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程