Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编写正则表达式以匹配由3个斜杠分隔的字符?_Python_Regex - Fatal编程技术网

Python 如何编写正则表达式以匹配由3个斜杠分隔的字符?

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'^.*\/

任何字符串都可以在斜线中,但必须只有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'^.*\/.*\/.*\/((?!/).)*$', "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。

而不是。*尝试使用[^/]*来确保/不匹配。*尝试使用[^/]*来确保/不匹配
^[^/]*/[^/]*/[^/]*/[^/]*$