Python正则表达式匹配文字星号

pis*_*hio 14 python regex

给出以下字符串:

s = 'abcdefg*'
Run Code Online (Sandbox Code Playgroud)

我如何匹配它或任何其他仅由小写字母组成的字符串,并且可选地以星号结尾?我认为以下内容可行,但它没有:

re.match(r"^[a-z]\*+$", s)
Run Code Online (Sandbox Code Playgroud)

它给出None而不是匹配对象.

NPE*_*NPE 19

我如何匹配它或任何其他仅由小写字母组成的字符串,并且可选地以星号结尾?

以下将这样做:

re.match(r"^[a-z]+[*]?$", s)
Run Code Online (Sandbox Code Playgroud)
  1. 该^匹配字符串的开始.
  2. 本[a-z]+场比赛的一个或多个小写字母.
  3. 本[*]?场比赛零个或一个星号.
  4. 该$匹配输入字符串的结尾.

您的原始正则表达式恰好匹配一个小写字符,后跟一个或多个星号.


unu*_*tbu 5

\*? 表示 0 或 1 星号:

re.match(r"^[a-z]+\*?$", s)
Run Code Online (Sandbox Code Playgroud)