엑셀 (바이오 데이터 포함) 파일에서 문장을 읽고 있는데 그들이 일하고있는 조직을 추출하고 싶습니다. 파일에는 그 사람이 공부하는 곳을 지정하는 문장도 포함되어 있습니다. 예 :
이런 유형의 문장을 건너 뛰고 싶습니다.
이 문장을 일치시키기 위해 정규식을 사용하고 있으며 학생과 관련된 경우 부분을 건너 뛰고 별도의 Excel 파일에 작성하려는 다른 줄 만 사용합니다.
내 코드는 아래와 같습니다 ..
csvdata = pandas.read_csv ( "filename.csv", ","); csvdata의 데이터 :
regEX=re.compile('|'.join([r'\bstudent\b',r'\bstudy[ing]\b']),re.I)
matched_data=re.match(regEX,data)
if matched_data is not None:
continue
else:
## write the sentence to excel
그런데 새로 생성 된 엑셀 파일을 확인해 보니 여전히 'student', 'study'가 포함 된 문장이 들어 있습니다. 결과를 얻기 위해 정규식을 수정하는 방법.
여기에는 두 가지가 있습니다.
1) 사용 re.search
( re.match
문자열 시작에서만 검색)
2) 정규식은regEX=re.compile(r"\b(?:{})\b".format('|'.join([r'student',r'study(?:ing)?'])),re.I)
는 [ing]
단 하나, 1 개 기호를 일치 i
, n
또는 g
의도하는 동안 일치 옵션 ing
결말. ?
수량 자-- 가있는 비 캡처 그룹 (?:ing)?
은 실제로 ing
s의 1 개 또는 0 개 시퀀스와 일치 합니다.
또한 역 추적 단계가 더 적기 때문에는 \b(x|y)\b
보다 효율적인 패턴 \bx\b|\by\b
입니다.
다음은 이 정규식이 어떻게 생겼는지에 대한 데모 입니다.
import re
pat = r"\b(?:{})\b".format('|'.join([r'student',r'study(?:ing)?']))
print(pat)
# => \b(?:student|study(?:ing)?)\b
regEX=re.compile(pat,re.I)
s = "He is studying here."
mObj = regEX.search(s)
if mObj:
print(mObj.group(0))
# => studying
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다