我正在使用^category/|categories/$
。
为什么^categor[y|ies]/$
不起作用?
答案 0 :(得分:5)
你的正则表达式应该是,
^categor(?:y|ies)/$
使用非捕获组而不是字符类。
字符类中的任何特殊字符都被视为文字除外。 [y|ies]
匹配单个字符,无论是y
还是|
还是i
还是e
还是s
>>> import re
>>> str = """
... category/
... categories/
... categories
... category"""
>>> m = re.findall(r'^categor(?:y|ies)/$', str, re.MULTILINE)
>>> m
['category/', 'categories/']
<强>解释强>
^
断言我们在行的开头。categor
匹配字符串categor
。(?:y|ies)
上述字符串categor
必须遵循y
或ies
。在正则表达式(?:)
中称为非捕获组。它只进行不捕获的匹配操作。 /
匹配文字正斜杠/
。$
行尾。