什么是匹配整个字符串的好正则表达式,除非字符串是“/”?
用例:这是一个重写规则。使用 rack-rewrite,它会附加一个尾随 /。
我需要:
/foo -> /newpath/foo
/ -> newpath
第二个示例没有尾部斜杠。
查看了Regex - Match Entire String unless但不知道如何使其适用于除“/”之外的所有字符串。
在 Ruby 中工作。
什么是匹配整个字符串的好正则表达式,除非字符串是“/”?
用例:这是一个重写规则。使用 rack-rewrite,它会附加一个尾随 /。
我需要:
/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 == "/"
rewrite %r{.*}, lambda { |match, rack_env|
url = match[0]
url == "/" ? "newpath" : "/newpath#{url}"
}