当引号包含以:或​​#(正则表达式)开头的单词时,如何删除匹配的引号

arc*_*ine 1 regex clojure

如果在字符串中检测到此模式:

双引号(#或:字符)其余单词,以双引号结尾

我想从比赛中删除双引号

这是一个例子

"#sql/inline"

#sql/inline

要么

":username"

:username

"test"会保持为 "test"

假设单词中没有\字符,这看起来像我想要的

(clojure.string/replace example-string #"(\")(#|:)(.*?)(\")" "$2$3")
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 6

一个正则表达式可以是

\"([#:][^\"]*)\"
Run Code Online (Sandbox Code Playgroud)

替换为$1。请参阅regex演示regex图

在此处输入图片说明

关闭命令:

(clojure.string/replace example-string #"\"([#:][^\"]*)\"" "$1")
Run Code Online (Sandbox Code Playgroud)

正则表达式详细信息

  • \" -双引号
  • ([#:][^\"]*) -捕获组1:
    • [#:]-一个#:字符
    • [^\"]* -除双引号外的0个或多个字符
  • \" -双引号。