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^$
注意:这些正则表达式用于djangourl.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
'' ''