[英]How to match either 2 characters or 5 characters with regex in python
[英]how to write a regex to match characters separated by 3 slashes?
斜線之間可以有任何字符串,但必須只有 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"))
您應該使用否定字符類:
^[^/]*/[^/]*/[^/]*/[^/]*$
[^/]
匹配除/
任何字符,因此我們表示一個包含三個/
以及它們周圍的任何其他字符的字符串。
在您的正則表達式中, .
可以匹配包括/
在內的任何內容,雖然您可以使用否定查找來近似等效的否定字符類,但您沒有正確地將它們應用於每個.
你有: ^((?!\\/).)*\\/((?!\\/).)*\\/((?!\\/).)*\\/((?!\\/).)*$
也會起作用,盡管它的性能會降低。
並且沒有必要轉義那些/
,它們不是正則表達式元字符。 您可能需要在使用/
作為分隔符的語言或工具中對它們進行轉義,例如 JavaScript 的/pattern/
語法或 sed 的s/search/replace/
替換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.