在撇号groovy中包含字符串对象

时间:2013-09-26 13:04:45

标签: string groovy apostrophe

我使用XMLSlurpr从XML响应中获取标记。他们加入了,实际看起来:

[0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF]

接下来我需要将其拆分为16个字符。我使用RegExp:

"(?<=\\G.{16})"

得到了

[0123456789ABCDEF, 0123456789ABCDEF, 0123456789ABCDEF]

如果我不分割字符串,我将在构建后使用下一个XML:

<EID>0</EID><EID>1</EID><EID>2</EID><EID>3</EID><EID>4</EID><EID>5</EID>

我需要将分割的字符串传递给XML Builder来构建XML。但groovy无法使用该字符串,我必须将带有撇号的分割字符串,如下所示:

['0123456789ABCDEF', '0123456789ABCDEF', '0123456789ABCDEF']

如何将所有0123456789ABCDEF括在'

1 个答案:

答案 0 :(得分:0)

它已经是:

def s = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF'

assert s.split( /(?<=\G.{16})/ ) == ['0123456789ABCDEF', '0123456789ABCDEF', '0123456789ABCDEF']

它必须是一个显示问题,它没有显示'字符......你在运行什么?

更新后编辑:

以下内容:

import groovy.xml.*

def s = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF'

def ids = s.split( /(?<=\G.{16})/ )

println XmlUtil.serialize( new StreamingMarkupBuilder().bind {
    root {
        ids.each { id ->
            EID( id )
        }
    }
} )

打印:

<?xml version="1.0" encoding="UTF-8"?><root>
  <EID>0123456789ABCDEF</EID>
  <EID>0123456789ABCDEF</EID>
  <EID>0123456789ABCDEF</EID>
</root>