Java groovy中两个标记之间的解析?
我想用groovy解析这个Gstring: 格式类型:键,值Java groovy中两个标记之间的解析?,java,regex,grails,groovy,Java,Regex,Grails,Groovy,我想用groovy解析这个Gstring: 格式类型:键,值 def txt = """ <Lane_Attributes> ID,1 FovCount,600 FovCounted,598 ... </Lane_Attributes> """ 我该怎么办: -提取标记和?, -并转换为
def txt = """ <Lane_Attributes>
ID,1
FovCount,600
FovCounted,598
...
</Lane_Attributes> """
我该怎么办:-提取标记和?,
-并转换为地图?尝试以下操作:
def map = [:]
txt.replaceAll('<.+>', '').trim().eachLine { line ->
def parts = line.split(',')
map[parts[0].trim()] = parts[1].trim().toInteger()
}
defmap=[:]
txt.replaceAll(“”,).trim().eachLine{line->
def parts=行。拆分(',')
映射[零件[0].trim()]=零件[1].trim().toInteger()
}
def txt=”“”
身份证,1
FovCount,600
FOV计算,598
"""
defmap=newhashmap()
def lane=new XmlParser().parseText(txt)
def content=lane.text()
content.eachLine{
行->
def dual=line.split(',')
def key=dual[0]。修剪()
def val=dual[1]。修剪()
//println“键:${key}值:${val}”
地图放置(键,val)
}
println“map contains”+map.inspect()
//将打印:地图包含[“FovCounted”:“598”,“ID”:“1”,“FovCount”:“600”]
您的问题是,标记之间的内容需要始终保持相同的格式,否则此代码将中断一些不错的groovy regexp示例:
在我的txt文件中,我有几个标记(例如:,但也有)。我尝试:def regex=“(.*)”,但不起作用?有什么想法吗?谢谢。是的,我需要为我的标签定义不同的解析器。事实上,XmlParser将帮助找到标记名并使用好的解析器(按内容)。谢谢
def map = [:]
txt.replaceAll('<.+>', '').trim().eachLine { line ->
def parts = line.split(',')
map[parts[0].trim()] = parts[1].trim().toInteger()
}
def txt = """ <Lane_Attributes>
ID,1
FovCount,600
FovCounted,598
</Lane_Attributes> """
def map = new HashMap()
def lane = new XmlParser().parseText(txt)
def content = lane.text()
content.eachLine {
line ->
def dual = line.split(',')
def key = dual[0].trim()
def val = dual[1].trim()
//println "key: ${key} value: ${val}"
map.put(key,val)
}
println "map contains " + map.inspect()