任何字符串都可以在斜线中,但必须只有3个分区。例如, 应匹配的值:
不应匹配的值:
我正在使用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"))
您应该使用negated character classes:
[^/]
匹配除/
之外的任何字符,因此我们表示一个包含三个/
及其周围任何内容的字符串在您的正则表达式中,
.
可以匹配包括/
在内的任何内容,虽然您可以使用负环型近似等于否定字符类,但您没有正确地将它们应用于您拥有的每个.
:^((?!\/).)*\/((?!\/).)*\/((?!\/).)*\/((?!\/).)*$
也可以工作,尽管它的性能较差没有必要转义这些
/
,它们不是正则表达式元字符。您可能需要在使用/
作为分隔符的语言或工具中转义它们,例如JavaScript的/pattern/
语法或sed的s/search/replace/
替换相关问题 更多 >
编程相关推荐