Поиск XCode: Как создать регулярное выражение Matches для выбора правильных файлов - PullRequest
1 голос
/ 08 ноября 2011

У меня есть проект с большим количеством целей в XCode.Я хочу настроить поиск и выбрать только файлы одной цели.

Моя программа имеет код файла следующим образом:

  1. Глобальные файлы, которые все цели используют
  2. Глобальный для устройств (iPad или iPhone)
  3. Специально для этой цели

Итак, для случая 1 имена файлов выглядят следующим образом:

SCName1.m
SCOtherGlobal.m

Случай 2:

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

Случай 3:

SCiPhoneAAFile1.m
SCiPadABFile1.m
SCiPadABOtherFile.m

Итак, для одной цели я хочу создать регулярное выражение, которое ищет файлы с:

 SC* OR SCiPhone* OR SCiPhoneAA*

Более полный способ:

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

Я новичок в регулярном выражении, и мое выражение не работает.Моя логика верна?Кто-нибудь знает создать правильное регулярное выражение?

1 Ответ

3 голосов
/ 08 ноября 2011

Поскольку вы хотите сопоставлять имена файлов, которые имеют общие элементы, я думаю, что наиболее эффективный способ (если не единственный способ) сделать это - использовать исключение (то есть файлы, которые не относятся к iPad в любомКстати, или файлы, которые не относятся к устройству iPhoneAB, но любые другие подойдут.

Итак, для этих входов:

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

Я могу сопоставить эти файлы:

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

Используя это выражение (которое использует отрицательный прогноз):

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

Я надеюсь, что это работает для вас! Кроме того, я могу разбить это для вас, если вы хотите: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...