Búsqueda de XCode: cómo crear una expresión regular de coincidencias (expresión regular) para seleccionar los archivos correctos

Tengo un proyecto con muchos objetivos en XCode. Quiero personalizar mi búsqueda y seleccionar solo archivos de un objetivo.

Mi programa tiene código de archivos de esta manera:

  1. Archivos globales que usan todos los objetivos
  2. Global para dispositivos (iPad o iPhone)
  3. Específico para ese objetivo

Entonces, para el caso 1, los nombres de los archivos son de esta manera:

SCName1.m
SCOtherGlobal.m

El caso 2 es:

SCiPhoneFile1.m
SCiPhoneFile2.m
SCiPadFile.m
SCiPadFile2.m

Caso 3:

SCiPhoneAAFile1.m
SCiPadABFile1.m
SCiPadABOtherFile.m

Entonces, para un objetivo, quiero crear una expresión regular que busque archivos con:

 SC* OR SCiPhone* OR SCiPhoneAA*

La forma más completa es

(SC* AND NOT(SCiPhone*) AND NOT(SCiPad*)) OR 
(SCiPhone* AND NOT(SCiPad*) AND NOT(SCiPhoneAB*)) OR
(SCiPhoneAA*)

Soy un novato en la expresión regular y mi expresión no funciona. ¿Mi lógica es correcta? ¿Alguien sabe crear la expresión regular correcta?

preguntado el 08 de noviembre de 11 a las 17:11

1 Respuestas

Dado que su deseo es hacer coincidir los nombres de archivo que tienen elementos comunes, creo que la forma más eficiente (si no la única) de hacerlo es utilizar la exclusión (es decir, archivos que no pertenecen al iPad de ninguna manera, o archivos que no pertenecen al dispositivo iPhoneAB, pero cualquier otro está bien.

Entonces, para estas entradas:

SCName1.m
SCOtherGlobal.m
SCiPhoneFile1.m
SCiPhoneFile2.m
SCiPadFile.m
SCiPadFile2.m
SCiPhoneAAFile1.m
SCiPhoneABFile2.m
SCiPadABFile1.m
SCiPadABOtherFile.m

Puedo hacer coincidir estos archivos:

SCName1.m
SCOtherGlobal.m
SCiPhoneFile1.m
SCiPhoneFile2.m
SCiPhoneAAFile1.m

Usando esta expresión (que usa una anticipación negativa):

SC(?!iPad|iPhoneAB)[^.]*\.m

¡Espero que esto funcione para ti! Además, puedo desglosar esto por ti, si quieres: D

respondido 08 nov., 11:22

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.