Python中的正则表达式重复案例是什么
我们可以使用几个特殊字符构建可以识别重复字符组的正则表达式。以下元字符可用于搜索一个字符或一组重复字符。
问号是第一个重复运算符或定量器。通过将其定义为可选项,它有效地指示引擎尝试将前一个令牌匹配0次或1次。
星号或乘号指示引擎尝试将前一个令牌匹配零次或多次。加号指示引擎尝试多次匹配前一个令牌。<[A-Za-z] [无属性的HTML标签通过[A-Za-z0-9]*> 来匹配。尖括号是文字表达。第一个字符类对应一个字母。第二个字符类匹配字母或数字。星号重复第二个字符类。如果第二个字符类匹配为空,也是可以接受的,因为我们使用了星号。因此,像这样的标签将匹配我们的正则表达式。
在匹配时,第一个字符类将匹配H。第二个字符类将重复三次,每次都与T,M和L匹配,这是由于星号的作用。我也可以使用[A-Za-z0-9]+。但我选择不这样做,因为这个正则表达式将匹配无效的HTML元素1>。然而,如果你确定所查找的文本不包含这样的错误标签,这个正则表达式可能是足够的。
限制重复
您还可以使用额外的定量器指示令牌重复的次数。语法是min,max,其中min表示匹配的最小次数(零或正整数),max表示匹配的最大次数(大于等于min的整数)。如果逗号存在但没有max,则最大匹配次数是无限的。因此,值0和1分别等同于?, *和+。如果省略了逗号和max,则指示引擎精确重复令牌min次。
要匹配1000到9999之间的数字,请使用表达式b[1-9][0-9]3b。范围在100到99999之间的数字可以匹配值2, 4b。请注意使用的术语限制。
重复中使用的元字符
字符 | 含义 | 示例 |
---|---|---|
? |
表示前一个字符出现零次或一次。需要注意的是零次出现的情况,如果不小心会出错。 | pythonl?y 匹配: pythony pythonly |
* |
表示前一个字符出现零次或多次。 | pythonl*y 匹配: 上面两者以及 pythonlly, pythonllly,等等 |
\+ |
表示前一个字符出现一次或多次。 | pythonl+y 匹配: pythonly, pythonlly, pythonllly,等等 |
{n,m} |
表示前一个字符出现n到m次。 | fo{1,2} 匹配: fo 或 foo |
这些重复字符都可以用来描述一组字符。因此
>>> import re # Python的正则表达式模块-在所有示例中都是隐式导入
>>> re.match('(.an){1,2}s', 'cans')
<re.MatchObject实例在862760处>
相同的模式也可以匹配’cancans’或’pans’或’canpans’,但不能匹配’bananas’。
示例
以下代码回答了上面的问题
#importing re
import re
#storing a string
s = "sheeeeeeeeple"
print("Give String -",s)
#searching for the repetitive words
match = re.search(r"he+", s)
#printing the matched groups of letters together
print ("Latest String-",match.group())
输出
Give String - sheeeeeeeeple
Latest String- heeeeeeee
代码解释
首先,我们从regex模块中导入re。然后,我们将字符串sheeeeeeeeple存储在变量s中。通过使用search方法,在字符串s中搜索“e”的重复,并将其存储在变量match中。然后,通过使用group方法,我们打印匹配的单词。
示例2
以下代码回答了上面的问题。
#importing re
import re
#storing a string
s = "tutoriallllllllsPoint"
print('Give String-',s)
#searching for the repetitive words
match = re.search(r"al+", s)
#printing the matched groups of letters together
print ("Lates string -",match.group())
输出
Give String- tutoriallllllllsPoint
Lates string - allllllll
代码解释
首先,我们从regex模块中导入re。然后我们将字符串sheeeeeeeeple存储在变量s中。使用search方法在字符串s中搜索“l”的重复,并将其存储在变量match中。然后通过使用group方法,我们打印匹配的单词。
结论
重复的表达式被称为重复。在’*
‘后面可以使用任意次数(包括0)来重复一个表达式。使用’+’来重复一个表达式时,必须至少重复一次。使用’?’后面的表达式可以重复0次或1次。当需要明确指定重复的最小次数和最大次数时,可以使用边界运算符{}。例如,a{2}表示字母’a’重复两次,a{2,4}表示字母’a’重复2到4次,a{2,}表示字母’a’至少重复两次且没有上限。注意,{}内部不能有空格,并且下界和上界的值没有上限。所有的重复表达式都指的是先前子表达式的最短可能匹配:单个字符、字符集合或通过()分组的子表达式。