如果用户的输入是有效文件的扩展名,如何检查正则表达式?

时间:2017-04-17 18:03:43

标签: python regex

用户需要输入文件扩展名,我想检查它是否有效。如果没有,我想要求重新进入。

我认为输入应符合这些规则:

  • 它可以以点
  • 开头
  • 点之后的所有其他符号(或没有它)可以只是数字和字母

我试过像这样的正则表达式:

 r'(\.)?\w+'

但是id对我不起作用,因为它匹配的字符串只包含字母数字和下划线符号,并且在开头不需要点,并且允许输入除允许的字符之外的任何字符。< / p>

1 个答案:

答案 0 :(得分:1)

  

我认为输入应符合这些规则:它可以以点开头。点之后(或没有它)的所有其他符号可以只是数字和字母。

请注意,要将整个字符串与模式匹配,您需要使用锚点^re.match}和$不需要。如果您使用Python 3.x re.fullmatch,则不需要它们。

下一点:如果您需要强制.,则需要在点模式后删除?量词,因为它匹配1或0次。

另外,要仅匹配字母数字符号,请不要使用\w,因为它也匹配下划线。

您可以使用

re.match(r'\.[^\W_]+$', s)

或(仅支持ASCII字母和数字,无论使用修饰符/ Python版本)

re.match(r'\.[a-zA-Z]+$', s)

检查字符串是否以点开头,然后在字符串末尾有一个或多个字母或数字。