Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换Groovy中现有字符串中的字符串_Java_Regex_Groovy - Fatal编程技术网

Java 替换Groovy中现有字符串中的字符串

Java 替换Groovy中现有字符串中的字符串,java,regex,groovy,Java,Regex,Groovy,在Groovy/Java中,如何最好地“截断”以下变量 def p = '{"name" : "%token%", "lastName" : "%c%e", "addrMngr" : "%xyz", "postCode" : "%x"}' 换句话说,我一般如何从以下方面获得: def p = '{"name" : "%token%", "lastName" : "%c%e", "addrMngr" : "%xyz", "postCode" : "%x"}' 到 忽略上面“值”列表中%的用法,

在Groovy/Java中,如何最好地“截断”以下变量

def p = '{"name" : "%token%", "lastName" : "%c%e", "addrMngr" : "%xyz", "postCode" : "%x"}'
换句话说,我一般如何从以下方面获得:

def p = '{"name" : "%token%", "lastName" : "%c%e", "addrMngr" : "%xyz", "postCode" : "%x"}'


忽略上面“值”列表中
%
的用法,将来这个字符串可能会随着数据的增加而变大。

我会尝试使用正则表达式:

p.replaceAll("\" : \".*\", \"", "\" : \"\", \"");
这是一个开始。
微调正则表达式也是可能的,例如,使空格成为可选的。

我会尝试使用正则表达式:

p.replaceAll("\" : \".*\", \"", "\" : \"\", \"");
这是一个开始。
微调正则表达式也是可能的,例如使空格成为可选的。

原始的
p
非常接近Groovy中的映射语法;只要稍作修改,我们就可以将其评估为一个真实的映射(a,不少于,re:key-order)

假设性能不重要,考虑以下(无正则表达式):

def p='{“name”:“%token%”,“lastName”:“%c%e”,“addrMngr”:“%xyz”,“postCode”:“%x”}
def m=p.replace('{','[')。replace('}',']'))
def映射=评估(m)
def buffer=新的StringBuilder()
buffer.append(“{”)
map.eachWithIndex{key,val,index->
append(/“${key}”:“/)
如果(索引
append(/“${key}”:“/)
如果(索引

我认为OP的字符串实际上是一个
json

下面是您可以使用
JsonSlurper
执行的操作,并将其转换回字符串

def p = '{"name" : "%token%", "lastName" : "%c%e", "addrMngr" : "%xyz", "postCode" : "%x"}'
def json = new groovy.json.JsonSlurper().parseText(p)
json.keySet().collect{json."$it" = ''}
def result = groovy.json.JsonOutput.toJson(json)
println "Resultant after transformation: $result"
assert result instanceof String