正则表达式-完全匹配

时间:2018-07-10 19:14:24

标签: regex

r'^a$'用作完全匹配。


上述模式表示...字符串应以字母a开头,并以字母a结尾。

什么阻止了该模式(r'^a$')匹配字符串'anna'

3 个答案:

答案 0 :(得分:3)

  

字符串应以字母a开头,并以字母a结尾

这不是正则表达式唯一说的:它还要求字符串在首字母和最后一个字母之间没有其他字符,这意味着此表达式匹配的唯一字符串是单字符字符串a

要解决此问题,请添加.*?以匹配字符串的“中间”:

^a.*?a$

请注意,此表达式不再与单字符字符串a匹配,因此至少需要两个a

Demo

答案 1 :(得分:1)

您的解释不正确。

正则表达式从左到右进行处理,匹配输入的一部分。

^a$

表示匹配从字符串的开头开始,然后必须立即与a匹配,然后必须立即与字符串的末尾匹配。

没有什么不同
abc

表示b必须立即跟随a,而c必须立即跟随b

答案 2 :(得分:0)

您误解了正则表达式的含义。

r'^a$'表示一个以字母“ a”开头并以相同的字母“ a”结尾的字符串。表达式中的“ a”字符必须同时是字符串中的开始和结束字符。

要提取以不同a开头和结尾的字符串,可以使用r^a.*a$。但这要求两个a不能相同。要获取以“ a”开头和以“ a”结尾的任何字符串,您可以将这两个或在一起:

r'^a$|^a.*a$'