반응형
주어진 문자열에 주어진 하위 문자열이 포함 된 경우 관용적 스칼라 검색 방법은 무엇입니까?
스칼라에 두 개의 문자열이 있는데 더 큰 문자열 ( needle
)에 더 작은 문자열 ( haystack
)이 포함되어 있는지 알아보고 싶습니다 .
내가 찾은 것은 정규 표현식과 다음과 같은 일치로 수행하는 것입니다 ( 이 질문에서 ).
needle.r.pattern.matcher(haystack).matches
이것은 (1) 그런 간단한 문제에 대해 지나치게 복잡하지만 더 중요한 것은 (2) 저에게 효과가 없기 때문입니다.
"needle".r.pattern.matcher("Finding needle in haystack").matches
보고
Boolean = false
최대의 효율성으로 수행하려면 직접 작성해야 할 수도 있습니다 (또는 어딘가에서 좋은 하위 문자열 검색 알고리즘을 찾아야합니다). 전혀 작동하지 않으려면 Scala에서 다음을 수행하십시오.
scala> "Finding needle in haystack" contains "needle"
res0: Boolean = true
scala> "Finding needle in haystack" indexOf "needle"
res1: Int = 8
정규식 검색 이 아닙니다 . 정규식 일치를 올바르게 사용하지 않고 있지만 (편집 : 해당 코드는 일치하는 부분 문자열을 찾기 위해 전체 문자열과 정확히 일치하도록 요청하기 때문입니다), 그것은 다른 문제입니다. 일치 수를 계산하려면 다음과 같이 할 수 있습니다.
scala> "needle".r.findAllIn("Finding needle in haystack").length
res2: Int = 1
이 정규식 스타일도 제공 할 것이라고 대답했지만
scala> "I have a needle in my haystack" matches ".*needle.*"
res10: Boolean = true
반응형
'code' 카테고리의 다른 글
이름이 259 자보다 긴 파일을 처리하는 방법은 무엇입니까? (0) | 2020.12.04 |
---|---|
Tomcat 7을 사용한 @WebServlet 주석 (0) | 2020.12.04 |
자식 MSBuild.exe 프로세스를 성공적으로 시작하거나 연결하지 못했습니다. (0) | 2020.12.04 |
angularjs의 ng-bind에서 필터를 사용한 후 더 많은 텍스트 추가 (0) | 2020.12.04 |
Rails에서 haml을 사용하여 이미지 링크 태그를 어떻게 만드나요? (0) | 2020.12.04 |