본문 바로가기
파이썬

파이썬 문자열의 첫 번째 점까지 모든 것을 가져 오는 Python 정규식

by º기록 2021. 1. 5.
반응형
find = re.compile("^(.*)\..*")
for l in lines:
    m = re.match(find, l)
    print m.group(1) 

첫 번째 점까지 문자열에서 무엇이든 정규식을 원합니다.

a@b.c 에서 a @ b
를 원합니다. in a@b.c.d, I want a@b
a@b.c.d.e 에서 a @ b 를 원합니다.

내 코드가 제공하는 것 ...

a @ b 만 얻으려면 무엇을 찾아야합니까?

 

해결 방법

 

기본적으로 모든 수량자는 본질적으로 탐욕 스럽습니다. 어떤 의미에서 그들은 가능한 한 많은 끈을 소비하려고 할 것입니다. 뒤에 ? 를 추가하여 주저하게 만들 수 있습니다.

find = re.compile(r"^(.*?)\..*")

주석에서 언급했듯이 문자열에 마침표 가 없으면이 접근 방식은 실패합니다. 따라서 원하는 동작 방식에 따라 다릅니다. 그러나이 경우 완전한 문자열을 얻으려면 부정 문자 클래스를 사용할 수 있습니다.

find = re.compile(r"^([^.]*).*")

첫 번째 마침표를 만나거나 문자열의 끝에서 자동으로 중지됩니다.


find = re.compile(r"^[^.]*")

for l in lines:
    print re.search(find, l).group(0)


 

참조 페이지 https://stackoverflow.com/questions/19142042

 

 

반응형

댓글