Python 正则表达式是否匹配空字符串?

Python 正则表达式是否匹配空字符串?,python,regex,django,django-urls,Python,Regex,Django,Django Urls,我想对列出的任何单词进行匹配和分组: aboutus/,race/,cruise/,westerlines/,weather/,reach/,gear/或空字符串 以下是一个解决方案,但与空\u字符串不匹配: ^(aboutus|race|cruise|westerlies|weather|reach|gear)/$ 所以我的问题是:如何在匹配中包含空字符串? 我仍然没有一个好的解决方案 因此,我又为空字符串添加了一个正则表达式:ie^$ 注意:这些正则表达式用于djangourl.py 更新

我想对列出的任何单词进行匹配和分组:

aboutus/
race/
cruise/
westerlines/
weather/
reach/
gear/
空字符串

以下是一个解决方案,但与空\u字符串不匹配:

^(aboutus|race|cruise|westerlies|weather|reach|gear)/$
所以我的问题是:如何在匹配中包含空字符串?

我仍然没有一个好的解决方案

因此,我又为空字符串添加了一个正则表达式:ie
^$

注意:这些正则表达式用于django
url.py

更新:如果捕获组不包含
/

请尝试以下操作:

^(aboutus|race|cruise|westerlies|weather|reach|gear)?/$
编辑: 如果“/”在除空字符串以外的所有情况下都是,请尝试以下操作

^((aboutus|race|cruise|westerlies|weather|reach|gear)(/))?$

您可以将捕获组设置为可选:

^(aboutus|race|cruise|westerlies|weather|reach|gear)?/$
用这个

^$|^(aboutus|race|cruise|westerlies|weather|reach|gear)/$
结果

'aboutus/'           'aboutus/'
'westerlies/'        'westerlies/'
'westerlies/ '       None
''                   ''

不起作用吗?
^(关于赛车、巡航、西风带、天气、到达、齿轮等)/$
怎么样?
^(关于赛车、巡航、西风带、天气、到达、齿轮等)/$
空字符串后面还会跟一个
//code>?@njzk2不起作用。@drowness no
//code>。空字符串是纯空的。我在django url.py中使用它,因此它类似于
^$
这是最好的正确解决方案。
表示0或1次出现,这正是OP的目标。抱歉
aboutus/
是必需的。我更新了问题。但是空字符串完全是空的。试试这个(关于tus/| race/| cruise/| westerlines/| weather/| reach/| gear/)?$@omair\u 77谢谢omar
真的帮了我很多忙……)你的意思是
(?非常感谢这正是我在寻找的。最好将
^$
放在末尾,像
…gear)/$^$^$
因为我假设在大多数情况下,测试的字符串不会为空,那么如果
^$
位于第二位,交替的第一部分将立即产生良好的结果;不会在每个测试字符串上验证部件
^$
'aboutus/'           'aboutus/'
'westerlies/'        'westerlies/'
'westerlies/ '       None
''                   ''