2013-10-30 2 views
0

나는 구두점을 사용하지 않고 단어의 시퀀스를 얻을 수 있도록 영어 텍스트 문자열을 토큰 화하려하지만 동시에 수축을 벗어나고 싶습니다 및 소유 명사 (같은 스티브의드류의) 그대로 (같은 하지하지 않습니다을). 정규 표현식을 사용하여이 작업을 해내려고 노력하고 있지만, 나는 아직 완전히 익숙하지 않습니다.수축의 아포스트로피를 제외한 모든 비영 문자 수와 일치하는 정규 표현

기본적으로 앞에서 설명한 예제와 같이 영숫자로 둘러싸인 아포스트로피를 제외하고 영숫자가 아닌 문자의 모든 시퀀스와 일치하는 정규식이 필요합니다. 정규 표현식으로이 작업을 수행 할 수 있습니까?

+0

무엇에 대한 작업을 수행해야 . 당신이 짝짓기를 한 후에, 스플릿이 어떻게 그 단어들을 돌려 줄 것인지에 대한 자세한 내용은 당신의 언어에 달려 있습니다. – AngelWarrior

답변

0

나는 당신의 정규식이 일치하려고 이해하지 않지만, 나는 이것이 당신이 원하는 것을 일치 생각 :

(?i)(?<=^|\s)([a-z]+('[a-z]*)?|'[a-z]+)(?=\s|$) 

이 선택적으로 0 ~ 다음에 아포스트로피로 끝날 수도 "단어"일치 n 개의 문자, 또는 다음의 에지의 경우 일치하는 문자 다음에 아포스트로피 :

  • 잭의
  • 로스
  • 'tis
0

귀하의 질문에 명확하지 않습니다. 내가 제대로 해석한다면, 다음과 같은 정규 표현식은 '+ 또는 [A-ZA-Z] +로, 당신이 원하는 단어를 일치하는'[w \] '작업

\b[\w']+\b 

regex101 demo

+1

"s"로 끝나는 명사의 소유물에 대한 올바른 철자법 인 "Ross"와 일치하지 않습니다 (즉, "Ross 's"라고 쓰지 않습니다). 따라서 "\ b"를 사용할 수 없습니다. "twas"와 "tis"에 의한 정면도 아니다. – Bohemian