단어의 시작과 끝에서 구두점을 모두 제거해야합니다. re.sub
을 사용하고 있습니다.파이썬의 문자열을 일치 패턴으로 바꾸기
re.sub(r'(\w.+)(?=[^\w]$)','\1',text)
밖으로 작동하지 않는 그룹 - 내가 할 모든 명령 줄
단어의 시작과 끝에서 구두점을 모두 제거해야합니다. re.sub
을 사용하고 있습니다.파이썬의 문자열을 일치 패턴으로 바꾸기
re.sub(r'(\w.+)(?=[^\w]$)','\1',text)
밖으로 작동하지 않는 그룹 - 내가 할 모든 명령 줄
이가 (그것도 물론, 하나의 단어에 대한 작동합니다) 트릭을 할 것 같은
text = ".adfdf. 'df' !3423? ld! :sdsd"
여러 단어 문자열이있는 경우 :
>>> re.sub(r'[^\w\s]*(\w+)[^\w\s]*', r'\1', text)
'adfdf df 3423 ld sdsd'
공지 사항 r은 r'\1'
입니다. 이것은 '\\1'
과 같습니다.
>>> re.sub(r'[^\w\s]*(\w+)[^\w\s]*', '\\1', text)
'adfdf df 3423 ld sdsd'
추가 읽기 : the backslash plague
입력 및 예상 출력의 더 나은 예를 들어주세요. 단어의 시작/끝 부분에 여러 구두점 문자가있을 수 있습니까? 문자열은 하나 이상의 단어로 구성 될 수 있습니까? – timgeb
여러 문자의 경우이 정규식 패턴'[\ w + \ -] +'을 사용하면'-'로만 분리 된 단어를 얻을 수 있습니다. 하지만 내 질문은 어떻게 패턴과 문자열을 교체하는 것입니다. – mjosh
또는'str.strip'을 사용할 수도 있습니다 ('text'는 단지 하나의 단어입니다). –