<div dir="ltr">Luis:<div><br></div><div>Es admirable!</div><div><br></div><div>Esto es lo que entiendo por la cultura cientÃfica: no importa la dificultad, ni la propia área; es la razón y creatividad, el interés por la soluciones, y un espÃritu inquisidor por otorgar una salida a todos, . . </div><div><br></div><div>Si yo fuera el Director de CONACyT, no podrÃa permanecer indiferente.</div><div><br></div><div>TODA MI ADMIRACIÓN!!!</div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-05-05 17:48 GMT-05:00 Luis Mochan <span dir="ltr"><<a href="mailto:mochan@icf.unam.mx" target="_blank">mochan@icf.unam.mx</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Les presumo mi nuevo programa.<br>
<br>
Se llama re2yaml y sirve para capturar una lista de publicaciones en<br>
un formato arbitrario que pueda describirse como una expresión<br>
regular. Por ejemplo, para capturar la lista de publicaciones que me<br>
envió Carlos Arias usé el comando<br>
<br>
<a href="http://re2yaml.pl" rel="noreferrer" target="_blank">re2yaml.pl</a> -o carlosArias.yaml -i carlosArias.txt \<br>
  -f 'autores año tÃtulo revista volumen páginas doi' \<br>
  -r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+<wbr>(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\<wbr>(\s*\d+\s*\))?:\s*(.*?)\s*(?:<wbr>doi\s*:\s*(.*))?$' \<br>
  -a '(?:and)?(.*?,\s+.*?[,\.]+)\s+<wbr>'<br>
<br>
que se ve espantoso, pero se los explico a los curiosos y pacientes:<br>
<br>
<a href="http://re2yaml.pl" rel="noreferrer" target="_blank">re2yaml.pl</a><br>
  es el nombre de mi programa<br>
<br>
-o carlosArias.yaml<br>
  indica el nombre del archivo donde dejar la información capturada<br>
<br>
-i carlosArias.txt<br>
  es el nombre donde puse su lista de publicaciones (convertida de un<br>
  .doc)<br>
<br>
-f 'autores año tÃtulo revista volumen páginas doi'<br>
  significa que a Carlos le gusta poner primero los autores, luego el<br>
  año, luego el tÃtulo, etc.<br>
<br>
-r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+<wbr>(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\<wbr>(\s*\d+\s*\))?:\s*(.*?)\s*(?:<wbr>doi\s*:\s*(.*))?$' \<br>
  es donde empieza la diversión. Ésta es una expresión regular que<br>
  define la estructura detallada de cómo escribe Carlos sus<br>
  publicaciones. La explicación va más abajo.<br>
<br>
-a '(?:and)?(.*?,\s+.*?[,\.]+)\s+<wbr>' \<br>
  Esta es una expresión regular para extraer cada uno de los autores<br>
  de una lista de autores.<br>
<br>
Lo acabo de probar y aparentemente funciona. La dificultad es que no<br>
somos muy consistentes en cómo escribimos y eso lleva a<br>
ambigüedades. Tuve que meterle mano a la lista de Carlos para que el<br>
programa pudiera con ella. Me inventé las expresiones regulares para<br>
que funcionaran con los primeros artÃculos, y entonces tuve que<br>
modificar algunos de los últimos artÃculos, pues su estilo ha cambiado<br>
a lo largo del año. Con todo y todo, hacer el programa desde cero,<br>
hacer y probar las expresiones regulares y condicionar la lista de<br>
publicaciones me tomó arribita de 4hrs. El programa debe servir sin<br>
mayor modificación para las otras listas que me han enviado. Luego les<br>
cuento si es cierto o no.<br>
<br>
Las expresiones regulares son bastante ilegible, pero su gracia es que<br>
en un par de lÃneas puede uno capturar la esctructura de la<br>
lista. Sólo es necesario hallar y registrar la expresión regular que decriba cada<br>
estilo de CV y checar que el CV cumpla consistentemente con dicha<br>
expresión :)<br>
<br>
<br>
Va la explicación.<br>
<br>
Expresión regular para capturar los artÃculos:<br>
<br>
-r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+<wbr>(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\<wbr>(\s*\d+\s*\))?:\s*(.*?)\s*(?:<wbr>doi.*)?\s*$'<br>
<br>
Explicación:<br>
^Â Â Â Â Â Â Â Â Â Principio <br>
\d*        Me salto numeración.<br>
\.        Me salto un punto.<br>
\s*Â Â Â Â Â Â Â Â Me salto espacios.<br>
(.*?\s+)Â Â Â Â Â Capturo autores separados por espacios <br>
(\d+)       hasta hallar el año, el cual capturo.<br>
[\s\.]+Â Â Â Â Â Â Me salto espacios y/o puntos<br>
(.*?)Â Â Â Â Â Â Â y capturo el tÃtulo<br>
\.        terminado en un punto y<br>
\s+Â Â Â Â Â Â Â Â seguido de espacios y<br>
(\d+)       del número de volumen. Este puede ir seguido de <br>
\s*Â Â Â Â Â Â Â Â espacios y<br>
(?:\(\s*\d+\s*\)) del número entre paréntesis y con posibles espacios.<br>
?         El número es opcional<br>
:Â Â Â Â Â Â Â Â Â Luego siguen dos puntos,<br>
\s*Â Â Â Â Â Â Â Â espacio opcional, y<br>
(.*?)       las páginas, que capturo. Finalmente pueden haber<br>
\s*Â Â Â Â Â Â Â Â espacios adicionales<br>
(?:doi\s*:\s*(.*))? y un doi opcional. Siguen<br>
\s*Â Â Â Â Â Â Â Â espacios opcionales y<br>
$Â Â Â Â Â Â Â Â Â el final del registro<br>
<br>
<br>
Expresión regular para separar los autores:<br>
<br>
-a '(?:and)?(.*?,\s+.*?[,\.]+)\s+<wbr>'<br>
<br>
         Hay un<br>
(?:and)?     'and' opcional para el último autor.<br>
(Â Â Â Â Â Â Â Â Â Inicia la captura con <br>
.*?        el nombre<br>
,         seguido de una coma<br>
\s+        seguido de uno o más espacios<br>
.*?        seguido de lo que sea<br>
[,.]+Â Â Â Â Â Â Â hasta hallar un punto o una coma o ambos.<br>
)Â Â Â Â Â Â Â Â Â Termina la captura<br>
\s+Â Â Â Â Â Â Â Â y siguen espacios<br>
<br>
El orden de los campos capturados es<br>
<br>
-f 'autores año tÃtulo revista volumen páginas'<br>
<br>
Si por ejemplo corro el programa sobre<br>
<br>
127. Aponte, FE, Taboada, B, Espinoza, MA, Arias-Ortiz, MA, Monge-MartÃnez, J, RodrÃguez-Vázquez, R, DÃaz-Hernández, F, Zárate-Vidal, F, Wong-Chew, RM, Firo-Reyes, V, del RÃo-Almendárez, CN, Gaitán-Meza, J, Villaseñor-Sierra, A, MartÃnez-Aguilar, GM, GarcÃa-Borjas, M, Noyola, DE, Pérez-Gónzalez, LF, López, S, Santos-Preciado, JI, Arias, CF. 2014. Rhinovirus is an important pathogen in upper and lower respiratory tract infections in Mexican children. Virology Journal. 2015, 12:31. DOI: 10.1186/s12985-015-0262-z.<br>
<br>
el resultado es<br>
<br>
-<br>
  autores:<br>
   - 'Aponte, FE,'<br>
   - 'Taboada, B,'<br>
   - 'Espinoza, MA,'<br>
   - 'Arias-Ortiz, MA,'<br>
   - 'Monge-MartÃnez, J,'<br>
   - 'RodrÃguez-Vázquez, R,'<br>
   - 'DÃaz-Hernández, F,'<br>
   - 'Zárate-Vidal, F,'<br>
   - 'Wong-Chew, RM,'<br>
   - 'Firo-Reyes, V,'<br>
   - 'del RÃo-Almendárez, CN,'<br>
   - 'Gaitán-Meza, J,'<br>
   - 'Villaseñor-Sierra, A,'<br>
   - 'MartÃnez-Aguilar, GM,'<br>
   - 'GarcÃa-Borjas, M,'<br>
   - 'Noyola, DE,'<br>
   - 'Pérez-Gónzalez, LF,'<br>
   - 'López, S,'<br>
   - 'Santos-Preciado, JI,'<br>
   - 'Arias, CF.'<br>
  año: '2015'<br>
  doi: 10.1186/s12985-015-0262-z.<br>
  páginas: '31.'<br>
  revista: 'Virology Journal,'<br>
  tÃtulo: 'Rhinovirus is an important pathogen in upper and lower respiratory tract infections in Mexican children'<br>
  volumen: '12'<br>
-<br>
<br>
En este formato es trivial añadirle el ISSN: 1743-422X y enviarlo a<br>
conacyt para que lo carguen en su CVU.<br>
<br>
Más tarde pruebo las otras listas que me enviaron. <br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
-- <br>
<br>
                                 o<br>
W. Luis Mochán,           | tel:(52)(777)329-1734   /<(*)<br>
Instituto de Ciencias FÃsicas, UNAMÂ | fax:(52)(777)317-5388Â Â Â `>/Â Â /\<br>
Apdo. Postal 48-3, 62251Â Â Â Â Â Â Â |Â Â Â Â Â Â Â Â Â Â Â Â Â Â (*)/\/Â \<br>
Cuernavaca, Morelos, México     | <a href="mailto:mochan@fis.unam.mx">mochan@fis.unam.mx</a>  /\_/\__/<br>
GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16Â C2DF 5F0A C52B 791E B9EB<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
Mensaje público enviado a la lista Cvu<br>
<a href="mailto:Cvu@em.fis.unam.mx">Cvu@em.fis.unam.mx</a><br>
<a href="http://em.fis.unam.mx/cgi-bin/mailman/listinfo/cvu" rel="noreferrer" target="_blank">http://em.fis.unam.mx/cgi-bin/<wbr>mailman/listinfo/cvu</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Cordialmente<div><br></div><div>Dr. Enrique López Moreno</div><div>Profesor Titular "B", T. C.</div><div>Departamento de FÃsica</div><div>Facultad de Ciencias. UNAM</div></div></div>
</div>