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

답변 해 주셔서 감사합니다 :) –

관련 문제