test_string = '''dated as of October 17, 2012 when we went caroling, dated as of December 21, 2011 when we ate bananas'''
import re
import calendar
months_full = '|'.join([month for month in calendar.month_name][1:])
pattern_1 = r'\b' + months_full + r'\s+\d{1,2},?\s+\d{4},?'
test_pattern = re.compile(pattern_1)
x = test_pattern.findall(test_string)
print x
>>>
['October', 'December 21, 2011']
>>>
가 내 정규식 단어 경계나는
어떤 달을 발견에서 시작
을 요구하고있다 생각 (철자 테스트 문자열에서 모든 날짜를 데리러이 REGEX을 수정하고 를 대문자로 어떻게다음 1 또는 2 자리 뒤에 하나 이상의 공백
있을 필요
,363,210가 다음
가 가
다음 4 자리
이 있어야 하나 이상의 공백 이어서 하나 또는 제로 콤마있을 및 마지막 자리에 바로 인접 쉼표 것이 끝날 수도날짜를 얻으면 유효성을 검사 할 예정입니다. 따라서 케이스가 너무 걱정되지 않습니다.
1 월 1 일, 유효한 날짜가 맞는지 확인할 수있는 것처럼 2999 건입니다.
첫 번째 달을 12 월으로 바꿀 때 정규 표현식이 두 날짜를 반환한다는 것을 알았습니다. 나는 \ b와 함께 놀았습니다. 및 기타 유사하지만이 과거를 얻을 수 없습니다.
모든 관찰은 많은
을 이해할 수있을 것이다
대체 요일 (월 이름 포함)을 캡처하지 않는 그룹'(? : ...)에 넣는 것을 잊었습니다.) ' –
답변으로 제공 – PyNEwbie
당신이 저에게 답을 주면 감사합니다. 받아 들일 수 있고 유용하다고 표시 할 수 있습니다. – PyNEwbie