regex - Clojure 用正则表达式替换字符串

标签 regex replace clojure

您好,我想以特殊的方式替换文件中的字符串。

例如,我正在使用正则表达式 #"\WhideMenu\W"搜索类似“hideMenu()”的字符串,这样它就不会返回 hideMenu 位于其中的某些文本,如“willHideMenu()”。

我正在使用这样的替换函数:

(clojure.string/replace textFile #"\WhideMenu\W" "hideMenu2")

但问题是它现在也替换了文本文件的第一个空格和最后一个字符。

例如,如果有:

function hideMenu() 

它将是:

functionhideMenu2)

这是非常合乎逻辑的,但是如何使用替换而不丢失第一个和最后一个字符?我想要的结果是:

function hideMenu2()

最佳答案

如果 clojure 支持,请使用前瞻和正则表达式后面:​​

(clojure.string/replace textFile #"(?<=\W)hideMenu(?=\W)" "hideMenu2")

否则您可能需要匹配该字符并在替换中使用它:

(clojure.string/replace textFile #"(\W)hideMenu(\W)" "$1hideMenu2$2")

关于regex - Clojure 用正则表达式替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27273472/

相关文章:

c# - 如何用不同的数字替换每个字符串匹配项?

java - Clojure 中的 IFn 代表什么?

http - 使用 Noir 的基本 HTTP 身份验证

regex - 在 XSD 中限制为 01 到 10 的值?

regex - Golang 编译正则表达式以删除 "以及字符串中 @ 之后和包括的任何内容

java - 在Java中使用正则表达式在给定段落中查找 'wh'句子

regex - 用 sed 或 replace 替换文件中的特定模式

c# - 以下约束的正则表达式是什么?

php - 匹配、评估和替换 BBCode 样式标签

clojure - 带有重复参数的映射 clojure