Python正则表达式可选匹配连字符

1 投票
1 回答
1105 浏览
提问于 2025-04-18 09:21

我该如何写正则表达式,让它可以接受连字符,但不强制要求有连字符呢?

因为文件夹的名字有时可以包含连字符,有时又不需要。

当我尝试这样写的时候:

r'^(?P<event_folder_name>[\w-]+)/$/result

它只会接受带有连字符的情况。

如果我这样写:

r'^(?P<event_folder_name>\w+)

那么如果包含连字符,它就不接受了。

我该如何让它同时接受这两种情况呢?

谢谢。

1 个回答

3

首先,$符号表示字符串的结尾。在正则表达式中,$后面的内容会被忽略掉。

其次,你的第一个规则看起来没问题(当然,中间的$符号除外)。[\w-]+的意思是可以匹配一个或多个字母、数字(\w)或者连字符(-)。

撰写回答