2013-06-05 36 views
1

我有一个列表,其中包含两种类型的文本。一种类型用于授权,而其他类型用于所有其他目的。 用于授权的类型始终使用相同的文本+后面的一些代码。 我想比较这两种文本类型的内容,并根据内容将它们分开。Groovy - 如何将列表的一部分与字符串进行比较

我的想法是寻找授权类型的模式,如果它匹配模式,那么这将被标记为授权,否则将被标记为“其他”。

我研究了Groovy中的模式比较,但我尝试过的所有变体都不适用于我。这里是应该做比较的部分,我明显做错了事,但我不知道是什么。

jdbcOperations.queryForList(sql).collect { row -> 
    if(assert (row['MSG'] ==~ /token/)){ 
    mark as authorization 
} 
else{ 
     mark as other 
    } 
    } 

对不起,模糊的代码,我不能分享比这更多。

+0

我认为问题出在你问题的第一行:你为什么把这个列表混在一起呢?那味道不好的设计和(因为你在谈论授权)就像安全问题的秘诀(当你有误报或漏报时)。 –

回答

0

我想你只是错过了文本的其余部分的匹配,因为你只查找匹配的第一部分。

assert ("abc" ==~ /abc/) == true 
assert ("abcdefg" ==~ /abc/) == false 
assert ("abcdefg" ==~ /abc(.*)/) == true // <--- This can also be made more complicated 
+0

感谢您的回答:) –

相关问题