.tsv 파일에서 정보를 읽고 각 줄에서 정규식을 나타내는 문자열을 얻습니다. 예를 들어, "리믹스"또는 "리믹스"를 감지하고 싶어서 읽어서 '\bre-?mix\b'
변환해야합니다. 나는 조금 검색 하고 같은 줄을 따라이 질문을 찾았 지만 대답을 테스트했지만 어느 것도 나를 위해 작동하지 않습니다.
패턴에 re.escape ()를 사용하면 다음과 같이 끝납니다 : '\ bre-\? mix \ b', re.compile ()을 사용하고 "remix"에서 re.search ()를 수행 한 후, 실패합니다. raw_regex.replace('\\b', '\\\\b')
re.compile ()에 간단히 입력 하고 패턴을 확인 하려고 시도했지만 예상대로 보였지만 여전히 간단한 if compiled_regex.search ("remix")
확인을 잡지 못했습니다 .
내가 여기서 뭘 잘못하고 있니? 내가해야 할 일은 원시 텍스트 정규식을 읽고, 변환하고, 컴파일하는 것입니다. 입력단에서 변경해야하는 사항이있는 경우에도 수행 할 수 있습니다. 감사!
이 프로그램은 문자열을 읽고 정규식으로 컴파일 한 다음 'remix'
. "변환"단계가 필요하지 않습니다.
#!/usr/bin/python2.7
import csv
import re
with open('x.tsv') as input_file:
input_file = csv.reader(input_file, delimiter='\t')
for row in input_file:
compiled_regex = re.compile(row[0])
print row[0], bool(compiled_regex.search('remix')), bool(compiled_regex.search('re-mix'))
입력:
remix
re-?mix
\bre-?mix\b
.*
this line should not match
산출:
remix True False
re-?mix True True
\bre-?mix\b True True
.* True True
this line should not match False False
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다