令牌化问题

时间:2012-04-12 08:56:41

标签: string groovy

我有

def testStr = 'a:*b*c*d'

我想要

tokens[0]=='a'
tokens[1]=='b*c*d'

我试试

def tokens = testStr.tokenize(':*')

但是

tokens[0]=='a' 
tokens[1]=='b'
tokens[2]=='c'
tokens[3]=='d'

我该怎么做呢

1 个答案:

答案 0 :(得分:8)

tokenize会收集可能的令牌列表,因此它会分散:*

您可能希望split将正则表达式拆分(并返回String[]):

def testStr = 'a:*b*c*d'

def tokens = testStr.split( /:\*/ )
assert tokens[ 0 ] == 'a'
assert tokens[ 1 ] == 'b*c*d'