您好我想以特殊方式替换文件中的字符串。
例如,我正在使用正则表达式#“\ WhideMenu \ W”搜索类似“hideMenu()”的字符串,这样它就不会返回hideMenu所在的文本,如“willHideMenu()”。
我正在使用这样的替换功能:
(clojure.string/replace textFile #"\WhideMenu\W" "hideMenu2")
但问题是它现在也替换了文本文件的第一个空格和最后一个字符。
例如,如果有:
function hideMenu()
它将是:
functionhideMenu2)
这是非常合乎逻辑的,但如何在不丢失第一个和最后一个字符的情况下使用替换?我想要结果:
function hideMenu2()
答案 0 :(得分:2)
如果clojure支持它,请使用前瞻和后面的Regex:
(clojure.string/replace textFile #"(?<=\W)hideMenu(?=\W)" "hideMenu2")
否则你可能需要匹配角色并在替换中使用它:
(clojure.string/replace textFile #"(\W)hideMenu(\W)" "$1hideMenu2$2")
答案 1 :(得分:1)
\W
匹配非单词字符,(
就是其中之一。你可能想要的是一个单词边界匹配,表示为\b
:
(clojure.string/replace "hideMenu()" #"\bhideMenu\b" "hideMenu2")
;; => "hideMenu2()"