Spaces:
Sleeping
Sleeping
Commit ·
5991a4f
1
Parent(s): ce1d11e
refactor: atualizar padrão regex para capturar referências numeradas multilinhas
Browse filesCo-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat>
app.py
CHANGED
|
@@ -123,8 +123,8 @@ def extract_references_with_regex(text):
|
|
| 123 |
|
| 124 |
# Padrões melhorados para extrair referências individuais
|
| 125 |
patterns = [
|
| 126 |
-
# Padrão 0: Referências numeradas com
|
| 127 |
-
r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]*?(
|
| 128 |
|
| 129 |
# Padrão 1: Autor(es). (Ano). Título. Journal/Editora.
|
| 130 |
r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
|
@@ -158,11 +158,11 @@ def extract_references_with_regex(text):
|
|
| 158 |
|
| 159 |
# Para o padrão numerado especial (6 grupos)
|
| 160 |
if len(groups) == 6:
|
| 161 |
-
title = groups[
|
| 162 |
-
journal = groups[
|
|
|
|
| 163 |
volume = groups[4].strip()
|
| 164 |
-
|
| 165 |
-
pages = ""
|
| 166 |
else:
|
| 167 |
# Para outros padrões (4 grupos)
|
| 168 |
year = groups[1].strip()
|
|
@@ -221,7 +221,7 @@ def create_highlighted_text(text, regex_references):
|
|
| 221 |
|
| 222 |
# Padrões para destacar (mesmos da extração)
|
| 223 |
patterns = [
|
| 224 |
-
r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]*?(
|
| 225 |
r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
| 226 |
r'^\[\d+\]\s*([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
| 227 |
r'^([A-Z][A-Za-z\s,&.-]+?)\s+\((\d{4}[a-z]?)\)[.,]\s*([^.]+?)[.,]\s*([^.]+?)\.?\s*$',
|
|
|
|
| 123 |
|
| 124 |
# Padrões melhorados para extrair referências individuais
|
| 125 |
patterns = [
|
| 126 |
+
# Padrão 0 (novo): Referências numeradas multilinhas com autores múltiplos
|
| 127 |
+
r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]*?(?:Jr|Sr)?[,\s]*(?:[A-Z][A-Za-z\s,&.-]*?)*?):\s*([^.]+?)\.\s*([^.]+?)\s+(\d{4}),?\s*(\d+):(\d+[-–]\d+)\.',
|
| 128 |
|
| 129 |
# Padrão 1: Autor(es). (Ano). Título. Journal/Editora.
|
| 130 |
r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
|
|
|
| 158 |
|
| 159 |
# Para o padrão numerado especial (6 grupos)
|
| 160 |
if len(groups) == 6:
|
| 161 |
+
title = groups[1].strip()
|
| 162 |
+
journal = groups[2].strip()
|
| 163 |
+
year = groups[3].strip()
|
| 164 |
volume = groups[4].strip()
|
| 165 |
+
pages = groups[5].strip()
|
|
|
|
| 166 |
else:
|
| 167 |
# Para outros padrões (4 grupos)
|
| 168 |
year = groups[1].strip()
|
|
|
|
| 221 |
|
| 222 |
# Padrões para destacar (mesmos da extração)
|
| 223 |
patterns = [
|
| 224 |
+
r'^\d+\.\s*([A-Z][A-Za-z\s,&.-]*?(?:Jr|Sr)?[,\s]*(?:[A-Z][A-Za-z\s,&.-]*?)*?):\s*([^.]+?)\.\s*([^.]+?)\s+(\d{4}),?\s*(\d+):(\d+[-–]\d+)\.',
|
| 225 |
r'^([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
| 226 |
r'^\[\d+\]\s*([A-Z][A-Za-z\s,&.-]+?)\.\s*\((\d{4}[a-z]?)\)\.\s*([^.]+?)\.\s*([^.]+?)\.?\s*$',
|
| 227 |
r'^([A-Z][A-Za-z\s,&.-]+?)\s+\((\d{4}[a-z]?)\)[.,]\s*([^.]+?)[.,]\s*([^.]+?)\.?\s*$',
|