아래에 파일 이름이 있으며 추출 year
하고 _TEXT
일부 를 나누고 싶습니다 .
fle_2019-11-17A17-21-09.01 (_TEXT] .txt
두 개의 정규식을 사용하여이 작업을 수행 한 다음 결과를 결합 할 수 있습니다.
(?<=\_)(\d{4})(?=\-)
이것은 나에게 준다 year
(?<=\()(.*)(?=\))
이것은 나에게 준다 _TEXT
단일 표현식에서 이것을 얻을 수있는 방법이 있습니까?
한 가지 옵션은 2 개의 캡처 그룹을 사용하는 것입니다. 첫 번째 밑줄 앞에 일치하도록 허용하는 항목에 따라 예를 들어 문자 클래스를 사용하여 밑줄없이 단어 문자를 일치시킬 수 있습니다.[^\W_]+
^[^\W_]+_(\d{4})-[\w.-]+\(([^)]+)\)\.\w+$
부품
^
문자열 시작[^\W_]+
다음을 제외하고 1 개 이상의 단어 문자 일치 _
_
일치하는 _
(\d{4})
그룹 1 캡처 , 1 개 이상의 숫자 일치-[\w.-]+
일치 -
및 1 개 이상의 단어 문자 .
또는 -
일치하도록 허용 할 문자 클래스 확장\(
시합 (
([^)]+)
캡처 그룹 2 , 다음을 제외한 모든 문자를 1 회 이상 일치)
\)
시합 )
\.\w+
A .
및 1 개 이상의 단어 문자 일치$
문자열 끝예를 들면
import re
regex = r"^[^\W_]+_(\d{4})-[\w.-]+\(([^)]+)\)\.\w+$"
test_str = "fle_2019-11-17A17-21-09.01(_TEXT).txt"
print(re.findall(regex, test_str))
산출
[('2019', '_TEXT')]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다