什麼是匹配整個字符串的良好正則表達式,除非字符串是「/」?正則表達式匹配整個字符串,除非字符串是/
使用案例:這是一個重寫規則。使用機架重寫,即追加尾部/。
我需要:
/foo -> /newpath/foo
/-> newpath
第二個例子沒有尾部斜槓。
看看Regex - Match Entire String Unless,但不知道如何使它適用於除「/」之外的所有設備。
在Ruby中工作。
什麼是匹配整個字符串的良好正則表達式,除非字符串是「/」?正則表達式匹配整個字符串,除非字符串是/
使用案例:這是一個重寫規則。使用機架重寫,即追加尾部/。
我需要:
/foo -> /newpath/foo
/-> newpath
第二個例子沒有尾部斜槓。
看看Regex - Match Entire String Unless,但不知道如何使它適用於除「/」之外的所有設備。
在Ruby中工作。
這是完全錯誤的使用正則表達式用於此目的,但根據您的要求:
re = %r{(?!\A/\z)(\A.*\z)}
"foo"[re] #=> "foo"
" /"[re] #=> " /"
"/ "[re] #=> "/ "
"/"[re] #=> nil
如果你想要得到的字符串,除非字符串是"/"
,做到這一點的方法是:
string unless string == "/"
那麼你會怎麼做呢? https://github.com/jtrupiano/rack-rewrite –
我將它的用途添加到答案中。 – sawa
如果爲此目的使用正則表達式是完全錯誤的,那麼你會怎麼做? –
rewrite %r{.*}, lambda { |match, rack_env|
url = match[0]
url == "/" ? "newpath" : "/newpath#{url}"
}
爲什麼一個正則表達式可以說''string「!=」/「'? – squiguy
@squiguy會導致使用正則表達式在.htaccess中寫入重寫規則 – alfasin
@alfasin在這種情況下,應該使用否定字符類。 – squiguy