为什么这提供正则表达式返回true?

use*_*587 1 python regex

我想知道为什么跟随正则表达式返回true:

reg = re.compile (r'[0-9]%')
reg.search ("50%")
Run Code Online (Sandbox Code Playgroud)

[0-9] 将匹配任何单个数字,在这种情况下为5.但是0与%不匹配,所以它应该返回false,但它返回true.

我的代码可能有语法错误,但你得到了它的要点.

Gre*_*unn 8

reg.search()匹配字符串中任何位置的模式(因此它匹配0%).如果您希望整个字符串匹配,请尝试以下操作:

re.compile(R '^ [0-9]%$')

^ - 匹配字符串的开头

$ - 匹配字符串的结尾


Tho*_*ens 5

这个正则表达式将匹配0%部分50%.