파이썬의 정규식 일치에서 문자열을 어떻게 반환합니까?
이 질문에 이미 답이 있습니다.
- Python 추출 패턴은 8개의 답변 과 일치 합니다.
python
스크립트를 사용하여 텍스트 파일의 줄을 실행하고 있습니다. img
텍스트 문서 내에서 태그 를 검색 하고 태그를 텍스트로 반환하고 싶습니다 .
정규식을 실행하면 개체가 re.match(line)
반환 _sre.SRE_MATCH
됩니다. 문자열을 반환하려면 어떻게 해야 합니까?
import sys
import string
import re
f = open("sample.txt", 'r' )
l = open('writetest.txt', 'w')
count = 1
for line in f:
line = line.rstrip()
imgtag = re.match(r'<img.*?>',line)
print("yo it's a {}".format(imgtag))
실행하면 다음이 인쇄됩니다.
yo it's a None
yo it's a None
yo it's a None
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e578>
yo it's a None
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e578>
yo it's a None
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e578>
yo it's a <_sre.SRE_Match object at 0x7fd4ea90e5e0>
yo it's a None
yo it's a None
를 사용해야 합니다 re.MatchObject.group(0)
. 좋다
imtag = re.match(r'<img.*?>', line).group(0)
편집하다:
다음과 같은 작업을 수행하는 것이 더 나을 수도 있습니다.
imgtag = re.match(r'<img.*?>',line)
if imtag:
print("yo it's a {}".format(imgtag.group(0)))
모든 None
s 를 제거합니다 .
여러 img
태그 가 있을 수 있다는 점을 고려하면 다음과 같이 권장합니다 re.findall
.
import re
with open("sample.txt", 'r') as f_in, open('writetest.txt', 'w') as f_out:
for line in f_in:
for img in re.findall('<img[^>]+>', line):
print >> f_out, "yo it's a {}".format(img)
imgtag.group(0)
또는 imgtag.group()
. 이것은 전체 일치를 문자열로 반환합니다. 다른 것도 캡처하지 않습니다.
http://docs.python.org/release/2.5.2/lib/match-objects.html
하는 것으로는 re.match(pattern, string, flags=0)
단지에서 경기를 반환 시작 문자열. 당신이 일치 찾을하려면 어디 문자열을 사용하는 re.search(pattern, string, flags=0)
대신 ( https://docs.python.org/3/library/re.html )를. 이것은 문자열을 스캔하고 첫 번째 일치 개체를 반환합니다. 그런 다음 match_object.group(0)
사람들이 제안한 대로 일치하는 문자열을 추출할 수 있습니다 .
ReferenceURL : https://stackoverflow.com/questions/18493677/how-do-i-return-a-string-from-a-regex-match-in-python
'IT이야기' 카테고리의 다른 글
SQL Azure에서 데이터베이스 간에 쿼리할 수 없음 (0) | 2021.09.26 |
---|---|
Selenium WebDriver를 사용하여 JavaScript 변수 읽기 (0) | 2021.09.26 |
레이블이 지정된 데이터와 레이블이 지정되지 않은 데이터의 차이점 (0) | 2021.09.25 |
Xcode의 임베디드 바이너리는 무엇입니까? (0) | 2021.09.25 |
Angular2 + Jspm.io : 클래스 데코레이터를 사용할 때 메타데이터 반사 심이 필요합니다. (0) | 2021.09.25 |