다음과 같은 문자열이 있습니다.
"{{contentious label|Pseudoscience}}This category is..."
특수 문자가없는 문자열이 필요합니다.
cleanedStr = re.sub(r'([^a-zA-Z ]+?)', "", string)
문제는 결과가 다음과 같이 나오고 있다는 것입니다.
contentious labelPseudoscienceThis category is
그리고 단어 사이에 공백 이 하나만 있는 결과가 필요합니다. 이후 토큰 화하기 위해 각 단어를 빈 공백으로 구분하기 때문입니다.
contentious label Pseudoscience This category is
도움을 주시면 감사하겠습니다. 나는 이미 하나의 공간 만 남겨둔 정규식을 시도했지만 만들 수 없었습니다.
다음을 사용하여 문제를 해결할 수 있습니다.
re.sub(r'[^a-zA-Z]+', ' ', text).strip()
여기에서 문자가 아닌 1 개 이상의 전체 청크를 단일 공백으로 바꾼 다음 strip()
결과에서 선행 / 후행 공백 을 제거합니다.
또는
" ".join(re.findall(r'[A-Za-z]+', text))
여기서, re.findall(r'[A-Za-z]+', text)
1+ ASCII 문자의 모든 청크 목록을 반환하고 " ".join(...)
이러한 목록 항목을 단일 공백으로 구분 된 문자열로 결합합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다