Python 如何编写正则表达式以匹配由3个斜杠分隔的字符?
任何字符串都可以在斜线中,但必须只有3个分区。例如, 应匹配的值: 90/90/90/9090 FDSAFDSA/90/PPPPP AA3/9090 不应匹配的值: 90/90/90/9090/90 FDSAFDSA/90/PPPPP AA3/9090/90 我正在使用python和re库,我尝试了很多组合,但都不起作用:Python 如何编写正则表达式以匹配由3个斜杠分隔的字符?,python,regex,Python,Regex,任何字符串都可以在斜线中,但必须只有3个分区。例如, 应匹配的值: 90/90/90/9090 FDSAFDSA/90/PPPPP AA3/9090 不应匹配的值: 90/90/90/9090/90 FDSAFDSA/90/PPPPP AA3/9090/90 我正在使用python和re库,我尝试了很多组合,但都不起作用: bool(re.match(r'^.*\/.*\/.*\/((?!\/).)*$', "90/90/90/9090/90")) bool(re.match(r'^.*\/
bool(re.match(r'^.*\/.*\/.*\/((?!\/).)*$', "90/90/90/9090/90"))
bool(re.match(r'^.*\/.*\/.*\/((?!/).)*$', "90/90/90/9090/90"))
bool(re.match(r'^.*\/.*\/.*\/(?!(/)$).*$', "90/90/90/9090/90"))
bool(re.match(r'^.*\/.*\/.*\/(/).*$', "90/90/90/90/90"))
bool(re.match(r'^.*\/.*\/.*\/.*(\/)$', "90/90/90/90/90"))
你应该使用:
[^/]匹配除/以外的任何字符,因此我们表示一个包含三个/的字符串及其周围的任何内容
在您的正则表达式中。可以匹配包括/在内的任何内容,虽然您可以使用负环视近似等于否定字符类,但您没有正确地将它们应用于每个字符。你有:^?!\/.\/?!\/.\/.\/?!\/.\/.\/?!\/.$也会起作用,尽管效果会差一些
不需要转义这些/,它们不是正则表达式元字符。您可能需要在使用/作为分隔符的语言或工具中转义它们,例如JavaScript的/pattern/syntax或sed的/search/replace/substitutions。您应该使用:
[^/]匹配除/以外的任何字符,因此我们表示一个包含三个/的字符串及其周围的任何内容
在您的正则表达式中。可以匹配包括/在内的任何内容,虽然您可以使用负环视近似等于否定字符类,但您没有正确地将它们应用于每个字符。你有:^?!\/.\/?!\/.\/.\/?!\/.\/.\/?!\/.$也会起作用,尽管效果会差一些
不需要转义这些/,它们不是正则表达式元字符。您可能需要在使用/作为分隔符的语言或工具中转义它们,例如JavaScript的/pattern/syntax或sed的/search/replace/substitutions。而不是。*尝试使用[^/]*来确保/不匹配。*尝试使用[^/]*来确保/不匹配
^[^/]*/[^/]*/[^/]*/[^/]*$