2011-09-29 3 views
1

내장 파이썬과 함께 제공되는 re 모듈에 대한 설명서를 읽었지만 이해할 수없는 것 같습니다. 사실, 내가 정확히 무엇인지 모르겠다. 그래서 설명해 주겠다.정규식? 검색 엔진?

나는 거대한 사전을 가지고있다. 내가 원하는 것은 검색 기준을 입력 할 수있는 것입니다. 예를 들어 hello을 말한 다음 사전을 검색하여 다음과 같은 목록을 제공하십시오 :

hello, hell, hello world, hello123. 기본적으로 검색 기준을 닮은 모든 것. 이 정규식을 사용할 것인가?

+9

"닮은"을 정의하십시오. –

+4

"거대한"을 정의하십시오. –

+1

'hell'을 제외한 모든 것은 단순히'str.startswith'이지만, 당신은'hell' 것에 대해 더 말해야합니다. 즉, 그 종류의 일치를위한 기준이 무엇인지에 대해 더 말해야합니다. – dmedvinsky

답변

2

파이썬을 사용하고 있으므로 Xapian을 보면 훌륭한 파이썬 바인딩이 있습니다.

당신이 원하는 것은 정규 표현식이 사용하는 방식이 더 정교합니다.

퍼지 매칭을 수행하려면 형태소 분석 및 기타 트릭을 사용하는 전체 텍스트 검색이 필요합니다.

1

Py35 저장소에 a new regexp module이 있습니다 (현재 Python re 모듈을 대체 할 수 있음).

퍼지 매칭을 허용합니다.

2

Levenshtein (편집) 거리를 계산할 수있는 무언가를보고 싶을 수도 있습니다. 여러분이 처음부터 이야기하는 것처럼 (파이썬에서는 잘! 그리고 다른 많은 언어로 포팅되었습니다) 무언가를 만드는 법에 대해서는 excellent article here이 있습니다.

"처음부터"경로를 사용하고 싶지는 않지만이 기사는 어떤 도구가 올바른 수준의 세련미를 가지고 있는지 결정하는 데 도움이되는 흥미로운 배경을 많이 제공합니다. 위에 제안 된 Xapian, Lucene 및 기타 전체 텍스트 검색 엔진은 이러한 종류의 기능을 제공 할 것이며 매우 정교 할 수 있지만 모든 것을 필요로하지는 않습니다.