假设a = 'I was born in 1997'
我想使用正则表达式(仅出于学习目的。)打印所有存在的内容
所以当我使用:re.match(r'.*', a)
然后它将匹配项显示为:<_sre.SRE_Match object; span=(0, 18), match='I was born in 1997'>
但是当我使用:re.match(r'[.*]', a)
我没有输出,即找不到匹配项。
答案 0 :(得分:0)
.
是正则表达式中的特殊字符 ,表示匹配除换行符以外的任何其他字符。但是当您在 {{1 }}字符类 ,它将成为普通字符[]
.
是一个量词 ,表示零个或多个时间。但是当您在字符类中使用时,它将变成普通字符*
*
--->意思是匹配换行符以外的任何内容。
.*
--->表示匹配[.*]
或.
进一步阅读
答案 1 :(得分:0)
正则表达式.*
匹配零个或多个字符,因此当然匹配整个字符串。
正则表达式[.*]
与.
或*
的单个字符匹配(它们在方括号之间失去了作为元字符的意义)。而且由于re.match
仅在字符串的开头匹配,所以它不匹配任何内容。 (re.search
匹配字符串中的任何位置,但仍不匹配您字符串中的任何内容。
re.match(r'[AEIOU]', a)
将与字符串开头的I
相匹配。
Python正则表达式的文档:https://docs.python.org/3.7/library/re.html