거리 이름이 많으며 "세인트 어거스틴"과 "세인트 어거스틴"과 같은 거리 이름을 정리하려고하므로 "세인트 어거스틴"으로 바꿀 수 있습니다. "St"또는 "St."중 하나와 일치하려고하는데 다음을 사용하여 시도했지만 점과 일치하지 않는 것 같습니다. 파이썬을 사용하고 있습니다.정규식, 임의의 점 앞에 일치하는 점
\bSt\.?\b
거리 이름이 많으며 "세인트 어거스틴"과 "세인트 어거스틴"과 같은 거리 이름을 정리하려고하므로 "세인트 어거스틴"으로 바꿀 수 있습니다. "St"또는 "St."중 하나와 일치하려고하는데 다음을 사용하여 시도했지만 점과 일치하지 않는 것 같습니다. 파이썬을 사용하고 있습니다.정규식, 임의의 점 앞에 일치하는 점
\bSt\.?\b
이하는 선택 일치하는 그룹 시도해보십시오
r'\bSt(\.)?\b'
예를 들어, 일치를 하나 Important
또는 Import
: 리터럴 파이썬의 문자열에서
r'\Import(ant)?\'
외에 다른 곳에서 유래 할 수 공유하고 싶습니다. – user2357112
s, \ b는 백 스페이스 문자 인 ASCII 값 8입니다. 원시 문자열을 사용하지 않으면 Python이 \ b를 백 스페이스로 변환하고 RE가 예상대로 일치하지 않습니다.
그래서 (그렇지 않으면 \b
백 스페이스를 의미 원시 문자열) (게시물 정보의 부족 때문에) 문제에 대한 해결책이 r'\bSt\.?\b'
것 추측 임.
.
은 단어 문자가 아니므로 점 뒤에 단어 경계가 없습니다. 단어 경계 전에 점을 찾습니다
>>> re.findall(r'\bSt\.?\b', 'St. Augustine')
['St']
>>> re.findall(r'\bSt\b\.?', 'St. Augustine')
['St.']
어쩌면 당신은 관련 코드의 일부는, 오류가 아무것도 해결되지 정규식 자체 –