非常困难于我认为非常简单的问题。作为一个例子,我有以下字符串,我需要插入值:
“其他一些文字或任何内容$ {who}是$ {what}其他一些文字或什么都没有” “其他一些文字或什么都没有$ {postfix}一些其他文字或什么都没有” “其他一些文字或没有$ {prefix}某些其他文字或什么都没有”
我需要的是对$ {...}事物进行分组,以便稍后可以用值替换它们。
我正在Clojure中执行我的RegEx匹配,所以真的在后台使用Java RegEx库。到目前为止,我已经尝试过:
user=> (def regex #"(\$\{\w+\})*")
#'user/regex
user=> (def matcher (re-matcher regex "${who} is a great ${that}person"))
#'user/matcher
user=> (re-find matcher)
["${who}" "${who}"]
user=> (re-find matcher)
["" nil]
我似乎无法将$ {that}视为匹配......
答案 0 :(得分:3)
表达式
(\$\{\w+\})
应该可行,但您可能想要使用它:
\$\{(\w+)\}
你的表达式最后会有一个*
,在某些情况下会破坏它,但在这种情况下它应该可以工作(如果你不需要双重转义)。您是否正确使用正则表达式API?是否适用于\w+
等简单匹配?