什么是匹配整个字符串的良好正则表达式,除非字符串是“/”?正则表达式匹配整个字符串,除非字符串是/
使用案例:这是一个重写规则。使用机架重写,即追加尾部/。
我需要:
/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