반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python의 argparse에서 metavar 및 action은 무엇을 의미합니까? (0) | 2021.01.05 |
---|---|
파이썬 Stopword removal with NLTK (0) | 2021.01.05 |
파이썬 전역 변수가 왜 나쁜가요? (0) | 2021.01.05 |
파이썬 Windows 8에 netCDF4를 설치하려고 할 때 "Python 버전 2.7 필요, 레지스트리에 없음"오류 발생 (0) | 2021.01.05 |
파이썬 How to use str.contains() with multiple expressions, in pandas dataframes? (0) | 2021.01.05 |
댓글