0
키의 정규식 일치를 사용하여 값을 찾을 수있는 일종의 컬렉션 (키, 값)이 있습니까?RegEx 조회를 사용한 콜렉션이 있습니다.
물론 모든 키를 반복하여 일치시킬 수도 있지만 더 똑똑한 것이 가능한지 궁금합니다.
그렇지 않은 경우이 방법을 구현하는 방법에 대한 아이디어는 크게 감사하겠습니다.
TIA
소렌
키의 정규식 일치를 사용하여 값을 찾을 수있는 일종의 컬렉션 (키, 값)이 있습니까?RegEx 조회를 사용한 콜렉션이 있습니다.
물론 모든 키를 반복하여 일치시킬 수도 있지만 더 똑똑한 것이 가능한지 궁금합니다.
그렇지 않은 경우이 방법을 구현하는 방법에 대한 아이디어는 크게 감사하겠습니다.
TIA
소렌
당신은 Trie structure 사용하고, 간단한 정규 표현식에 따라 걸을 수있다. 그러나이 퍼 퓨즈에 기존의 정규 표현식 라이브러리를 채택하는 것은 어려울 것이다.
a -> select child 'a'.
[a-z] -> select all children between 'a' and 'z', inclusive.
. -> select all children.
a* -> select all decendants down 'a' branches.
a? -> select current nodes, and any 'a' children.
패턴 끝에 도달하면 현재 선택된 모든 노드를 반환합니다. 선택된 노드의 수가 0이되면 중단하고 빈 세트를 반환합니다.
가지를 사용하는 경우 가능한 모든 패턴 조합을 탐색해야합니다.
효율적인 정규 표현식에 대한 정보는 Russ Cox articles on the subject입니다.
이것은 O (1) 조회를 수행하는 것이 매우 어려울 것이며 O (logn)조차도 불가능하다는 것을의 미합니다. O (n)은 가능하지만 목록을 사용할 수도 있습니다. – leppie