2013-06-05 5 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

Спасибо за ваш ответ :) –

Смежные вопросы