gpt4 book ai didi

java - 去掉 lib-noir 中的尾部斜杠

转载 作者:行者123 更新时间:2023-12-02 06:43:09 25 4
gpt4 key购买 nike

我正在研究 lib-noir 库。当我查看wrap-strip-trailing-slash时函数,我发现了有趣的正则表达式模式。

(defn wrap-strip-trailing-slash
"If the requested url has a trailing slash, remove it."
[handler]
(fn [request]
(handler (update-in request [:uri] s/replace #"(?<=.)/$" ""))))

作者使用#"(?<=.)/$"模式,但我无法理解正则表达式在这种情况下如何工作?我尝试从 Java Regex Document 中查找任何信息,但找不到正确的信息。

(?<=.)看起来很有趣。请帮助我理解这一点。

最佳答案

(?<=.)/$

(?<=.) # Positive lookbehind
/ # Literal forward slash
$ # End of line anchor

正向回顾是 lookaround assertion 确保后面的字符前面有一些与断言内的表达式匹配的内容。

正向回顾中的表达式是 . (正则表达式中的通配符表示任何字符,默认情况下除换行符外),(?<=.)/$仅当该字符串在正斜杠之前有另一个字符(换句话说,如果字符串至少有 2 个字符长)时,才会匹配字符串末尾的正斜杠。

/    # No replace
a/ # Replace the / so that you have the string "a" as result.
a/a # No replace because / is not at the end of the string.

关于java - 去掉 lib-noir 中的尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com