특정 유니 코드 속성 클래스를 일치 시키려는regex
경우 PyPi 모듈 을 사용하는 것이 좋습니다 . 이 라이브러리는 특히 큰 텍스트를 처리하는 등 더 안정적인 것으로 입증되었으며 다양한 Python 버전에서 일관된 결과를 산출합니다. 최신 상태로 유지하기 만하면됩니다.
설치 ( pip intall regex
또는 사용 pip3 install regex
)하면 다음을 사용할 수 있습니다.
import regex
print ( regex.sub(r'\P{L}+', '', 'ABCŁąć1-2!Абв3§4“5def”') )
// => ABCŁąćАбвdef
에서 유니 코드 문자를 제외한 1 개 이상의 문자의 모든 청크를 제거합니다 text
. 온라인 Python 데모를 참조하십시오 . "".join(regex.findall(r'\p{L}+', 'ABCŁąć1-2!Абв3§4“5def”'))
동일한 결과를 얻기 위해 를 사용할 수도 있습니다.
Python에서는 re
유니 코드 문자와 일치시키기 위해 [^\W\d_]
( Match any unicode letter? ) 구문을 사용할 수 있습니다 .
따라서 문자가 아닌 모든 문자를 제거하려면 모든 문자를 일치시키고 결과를 결합 할 수 있습니다.
result = "".join(re.findall(r'[^\W\d_]', text))
또는 [^\W\d_]
다음 과 일치하는 문자 이외의 모든 문자를 제거하십시오 .
result = re.sub(r'([^\W\d_])|.', r'\1', text, re.DOTALL)
온라인 정규식 데모를 참조하십시오 . 그러나 유니 코드 표준이 발전하고 있고 일치하는 문자 집합 \w
이 Python 버전에 따라 달라 지기 때문에 다양한 Python 버전에서 일관성없는 결과를 얻을 수 있습니다 . regex
일관된 결과를 얻으려면 PyPi 라이브러리를 사용 하는 것이 좋습니다.
v
책의 전체 라인 (특히 moby dick), 나는 char 단위가 아닌 단어 단위로 가고 있습니다. 따라서 일부 단어는 끝에 ","가있을 수 있으므로 "indignity"는 "indignity"와 매핑되지 않습니다.