2014-03-18 3 views
1

일부 PII에 대한 웹 페이지 집합을 검색하는 프로젝트를 진행 중입니다. 특히, 나는 그 사람이 살고있는 국가를 추출하기 위해 페이지를 정확하게 긁어 내는데 어려움을 겪고있다. 인위적으로 혼란을 야기하는 구체적인 예가있다. 내 regex 전체 상태 이름 또는 상태 약어의 존재에 대한 각 페이지를 검색합니다. 이 경우 인디애나의 약어가 IN이므로 많은 잘못된 오판이 반환됩니다. 따라서 'in'은 일반적인 단어이므로 대소 문자를 구분하지 않는 검색은 모든 웹 페이지를 문자 그대로 반환합니다. 이 딸꾹질을 없애기 위해 사용할 수있는 영리한 정규식이나 다른 기술이 있습니까? 나는 상태를 쉼표와 약어로 표기하여 대조 할 수는 있지만 때로는 웹 페이지에 쉼표 (예 : ', IN')가 포함되지 않습니다. 어떤 아이디어?상태 이름에 대한 웹 페이지 스크랩

이것은 내 regex fyi입니다.

re.search(r'\b{0}\b|\b{1}\b'.format(state.strip(), stateDictionaryLookup(state.strip())), webpage, re.IGNORECASE) 
+0

참고로, 인디애나가 당신을 던지고있는 경우를 대비하여 ... – MattDMo

+0

사과, 맞춤법 검사가 여기에서 선택하지 않았습니다. –

+1

약어가 IN이 아니기 때문에 대소 문자를 구분하지 않는 검색을 사용하는 이유는 무엇입니까? 그게 도움이 되겠습니까? 당신이 할 수있는 뭔가가 있습니까? 예를 들어 우편 번호? – PyNEwbie

답변

0

쉽게 내가 알고있는 것을이 작업을 수행하는 완벽한 방법은 없습니다 : 그것은 국가의 전체 이름과 함수 호출에서 반환 된 키 - 값 쌍에 의해 반환되는 그 상태에 대한 약어를 찾습니다. 당신이해야 할 일은 당신이 원하는 가양성에 대한 가양 성의 비율에 달려 있습니다. 여기

도움이 될 수 있습니다 몇 가지 관찰은 다음과 같습니다. 상태 약어 IN이 선행 또는 ,, ;, 또는 더 자주 단어 이상의 . 뒤에

  • 단어는 거의 결코에서 선행하고 ,, ;, 또는 .로 시작하고 다음에 약어를 찾을 드문 일이 안 반면,, ;, 또는 . 하였다.
  • 단어 IN은 거의 IN으로 작성되지 않지만 약어 IN은 거의 항상 대문자입니다.