Uma coisa básica quando trata-se de Bíblia, é lidar com passagens bíblicas. Cada passagem pode envolver um ou mais versos (versículos) ou capítulos em sequência ou não.
Seguem alguns exemplos de passagens bíblicas válidas:
- Genesis 5
- Exodo 20:8-11
- Mateus 6:5,6
- Marcos 5-7
- II Reis 2:6
Daí eu resolvi fazer uma primeira validação da estrutura das passagens bíblicas usando expressões regulares.
O código que fiz é esse aqui:
import re
def is_valid_passage(p):
'''
Check basic passage structure.
File ./business-test.txt has doctests.
'''
book = r'(([1-3]|[iI]{1,3})( )?)?[a-zã-ũá-úà-ùâ-ûä-üçA-ZÃ-ŨÁ-ÚÀ-ÙÂ-ÛÄ-ÜÇ]+'
passage = r'({book}( {number})?((:|-|,){number})*)'.format(
book = book,
number = r'\d{1,3}')
regexp = r'{passage}((, ){passage})*$'.format(passage = passage)
if re.match(regexp, p):
return True
else:
return False
Os testes estão em http://pastie.org/647220
Será que tem um jeito melhor de validar a estrutura das passagens bíblicas?
0 comentários:
Postar um comentário